終止程式的工具 kill 、killall、pkill、xkill
一直用kill kill -9 下次要記得用killall 和 pkill。要把平時用幾行命令完成的事情用一行命令完成!
終止一個程式或終止一個正在執行的程式,一般是透過 kill 、killall、pkill、xkill 等進行。比如一個程式已經死掉,但又不能退出,這時就應該考慮應用這些工具。
另外應用的場合就是在伺服器管理中,在不涉及資料庫伺服器程式的父程式的停止執行,也可以用這些工具來終止。為什麼資料庫伺服器的父程式不能用這些工具殺死呢?原因很簡單,這些工具在強行終止資料庫伺服器時,會讓資料庫產生更多的檔案碎片,當碎片達到一定程度的時候,資料庫就有崩潰的危險。比如mysql伺服器最好是按其正常的程式關閉,而不是用pkill mysqld 或killall mysqld 這樣危險的動作;當然對於佔用資源過多的資料庫子程式,我們應該用kill 來殺掉。
3.1 kill
kill的應用是和ps 或pgrep 命令結合在一起使用的;
kill 的用法:
kill [訊號程式碼] 程式ID
注:訊號程式碼可以省略;我們常用的訊號程式碼是 -9 ,表示強制終止;
舉例:
root 4939 0.0 0.0 5160 708 pts/3 S+ 13:10 0:00 _ grep httpd
root 4830 0.1 1.3 24232 10272 ? Ss 13:02 0:00 /usr/sbin/httpd
apache 4833 0.0 0.6 24364 4932 ? S 13:02 0:00 _ /usr/sbin/httpd
apache 4834 0.0 0.6 24364 4928 ? S 13:02 0:00 _ /usr/sbin/httpd
apache 4835 0.0 0.6 24364 4928 ? S 13:02 0:00 _ /usr/sbin/httpd
apache 4836 0.0 0.6 24364 4928 ? S 13:02 0:00 _ /usr/sbin/httpd
apache 4837 0.0 0.6 24364 4928 ? S 13:02 0:00 _ /usr/sbin/httpd
apache 4838 0.0 0.6 24364 4928 ? S 13:02 0:00 _ /usr/sbin/httpd
apache 4839 0.0 0.6 24364 4928 ? S 13:02 0:00 _ /usr/sbin/httpd
apache 4840 0.0 0.6 24364 4928 ? S 13:02 0:00 _ /usr/sbin/httpd
我們檢視httpd 伺服器的程式;您也可以用pgrep -l httpd 來檢視;
我們看上面例子中的第二列,就是程式PID的列,其中4830是httpd伺服器的父程式,從4833-4840的程式都是它4830的子程式;如果我們殺掉父程式4830的話,其下的子程式也會跟著死掉;
[root@localhost ~]# ps -auxf |grep httpd 注:檢視一下會有什麼結果?是不是httpd伺服器仍在執行?
[root@localhost ~]# kill 4830 注:殺掉httpd的父程式;
[root@localhost ~]# ps -aux |grep httpd 注:檢視httpd的其它子程式是否存在,httpd伺服器是否仍在執行?
對於殭屍程式,可以用kill -9 來強制終止退出;
比如一個程式已經徹底死掉,如果kill 不加訊號強度是沒有辦法退出,最好的辦法就是加訊號強度 -9 ,後面要接殺父程式;比如;
beinan 5031 9.0 2.3 104996 17484 ? S 13:23 0:01 gaim
root 5036 0.0 0.0 5160 724 pts/3 S+ 13:24 0:00 grep gaim
或
[root@localhost ~]# pgrep -l gaim
5031 gaim
[root@localhost ~]# kill -9 5031
3.2 killall
killall 透過程式的名字,直接殺死所有程式,我們們簡單說一下就行了。
用法:killall 正在執行的程式名
killall 也和ps或pgrep 結合使用,比較方便;透過ps或pgrep 來檢視哪些程式在執行;
舉例:
2979 gaim
[root@localhost beinan]# killall gaim
3.3 pkill
pkill 和killall 應用方法差不多,也是直接殺死執行中的程式;如果您想殺掉單個程式,請用kill 來殺掉。
應用方法:
舉例:
2979 gaim
[root@localhost beinan]# pkill gaim
3.4 xkill
xkill 是在桌面用的殺死圖形介面的程式。比如當firefox 出現崩潰不能退出時,點滑鼠就能殺死firefox 。當xkill執行時出來和個人腦骨的圖示,哪個圖形程式崩潰一點就OK了。如果您想終止xkill ,就按右鍵取消;
xkill 呼叫方法:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245514/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux 下使用 killall 命令終止程式Linux
- Linux 下使用 killall 命令終止程式的 8 大用法Linux
- kill與pkill的區別
- Linux kill,killall和killall5Linux
- Linux之ps查詢程式用kill終止命令Linux
- 如何在 Linux 上使用 kill 和 killall 來管理程式Linux
- Linux 下用ps查詢程式並用kill終止命令詳解Linux
- 終止指定埠的程式
- Windows 程式的建立和終止Windows
- ORA-00031:session marked for kill(標記要終止的會話)解決方法Session會話
- 【Linux】程式終止方式--exit的呼叫過程!!!Linux
- 程式控制:程式的建立、終止、阻塞、喚醒和切換
- Linux——程式建立、程式終止、程式等待、程式程式替換Linux
- jQuery的each終止或跳過示例程式碼jQuery
- 終止imp/exp和expdp/impdp程式執行的方法
- subprocess.Popen 如何提前終止程式執行
- linux下查詢程式及終止程式操作的相關命令Linux
- PHP實現守護程式的啟動和終止操作PHP
- Go的優雅終止姿勢Go
- 問題:執行緒的終止執行緒
- 併發程式設計——如何終止執行緒程式設計執行緒
- APUE 7-3 終止處理程式例項
- 兩階段終止模式模式
- 終止非同步任務非同步
- 如何使用xkill命令殺掉Linux程式/未響應的程式Linux
- javascript如何終止函式的執行JavaScript函式
- 終止Android中HandlerThread的方法Androidthread
- TCP/IP之TCP的建立與終止TCP
- Docker 容器優雅終止方案Docker
- Java 終止執行緒方法Java執行緒
- 你可以終止 forEach 嗎?
- Linux基礎命令—殺死程式pkillLinux
- Linux基礎命令---殺死程式pkillLinux
- linux下啟動和終止JAVA程式shell指令碼LinuxJava指令碼
- 終止java執行緒的2種方法Java執行緒
- TCP連線是如何建立和終止的?TCP
- mysqldump意外終止的原因以及解決方法MySql
- 蘋果將終止Epic的開發者帳戶及開發工具訪問許可權蘋果訪問許可權