linux操作系統命令:講述Linux kill
Linux kill命令
當需要中斷一個前臺進程的時候,通常是使用< Ctrl+c >組合鍵;但是對于一個后臺進程恐怕就不是一個組合鍵所能解決的了,這時就必須求助于kill命令。該命令可以終止后臺進程。至于終止后臺進程的原因很多,或許是該進程占用的CPU時間過多;或許是該進程已經掛死?傊@種情況是經常發生的。Linux進程中的kill命令是通過向進程發送指定的信號來結束進程的。如果沒有指定發送信號,那么默認值為TERM信號。TERM信號將終止所有不能捕獲該信號的進程。至于那些可以捕獲該信號的進程可能就需要使用kill(9)信號了,該信號是不能被捕捉的。
Linux kill命令很簡單,大致有以下兩種方式:
1.kill [-s 信號 | -p ] [ -a ] 進程號 ...
2.kill -l [信號]
◆-s 指定需要送出的信號。既可以是信號名也可以對應數字。
◆-p 指定kill命令只是顯示進程的pid,并不真正送出結束信號。
◆-l 顯示信號名稱列表,這也可以在/usr/include/linux/signal.h文件中找到。
Linux kill命令使用
下面看看該命令的使用。
[例24] 在執行一條find指令時由于時間過長,決定終止該進程。
首先應該使用ps命令來查看該進程對應的PID,鍵入ps,顯示如下:
PID TTY TIME COMMAND
285 1 00:00:00 -bash
287 3 00:00:00 -bash
289 5 00:00:00 /sbin/mingetty tty5
290 6 00:00:00 /sbin/mingetty tty6
312 3 00:00:00 telnet bbs3
341 4 00:00:00 /sbin/mingetty tty4
345 1 00:00:00 find / -name foxy.jpg
348 1 00:00:00 ps
可以看到該進程對應的PID是345,現在使用kill命令來終止該進程。鍵入:
# kill 345
再用ps命令查看,就可以看到,find進程已經被殺掉了。
[例25] 殺掉進程11721
# ps PID TTY TIME COMMAND
11668 p1 00:00:00 -tcsh
11721 p1 00:00:00 cat
11737 p1 00:00:00 ps
# kill 11721
[1] Terminated cat
#
有時候可能會遇到這樣的情況,某個進程已經掛死或閑置,使用kill命令卻殺不掉。這時候就必須發送信號9,強行關閉此進程。當然這種“野蠻”的方法很可能會導致打開的文件出現錯誤或者數據丟失之類的錯誤。所以不到萬不得已不要使用強制結束的辦法。如果連信號9都不響應,那恐怕就只有重新啟動計算機了。
控制多個進程命令Linux可使用戶同時運行多個進程,還允許用戶或系統管理員能控制正在運行的進程。
nohup命令
理論上,我們一般退出Linux系統時,會把所有Linux進程中的所有程序全部結束掉,包括那些后臺程序。但有時候,例如您正在編輯一個很長的程序,但是您下班或是有事需要先退出系統,這時您又不希望系統把您編輯那么久的程序結束掉,希望退出系統時,程序還能繼續執行。這時,我們就可以使用nohup命令使進程在用戶退出后仍繼續執行。
一般這些進程我們都是讓它在后臺執行,結果則會寫到用戶自己的目錄下的nohup.out這個文件里(也可以使用輸出重定向,讓它輸出到一個特定的文件)。
[例26] $ nohup sort sales.dat &
這條命令告訴sort命令忽略用戶已退出系統,它應該一直運行,直到進程完成。利用這種方法,可以啟動一個要運行幾天甚至幾周的進程,而且在它運行時,用戶不需要去登錄。
nohup命令把一條命令的所有輸出和錯誤信息送到nohup.out文件中。若將輸出重定向,則只有錯誤信息放在nohup.out文件中。
renice命令
renice命令允許用戶修改一個正在運行進程的優先權。 利用renice命令可以在命令執行時調整其優先權。其格式如下:
$ renice -number PID
其中,參數number與nice命令的number意義相同。
注:
(1) 用戶只能對自己所有的進程使用renice命令。
(2) root用戶可以在任何進程上使用renice命令。
(3) 只有root用戶才能提高進程的優先權。
思考題
1. 什么是linux進程?進程與作業有何區別?
2. 進程啟動的方式有哪幾種?
3. at命令與batch命令有何本質區別?
4. cron命令在何時執行?如何改變其執行狀態?
5. 何謂前臺作業、后臺作業?如何掛起當前的前臺作業?<
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解