作業控制
Bash可以選擇在後台或前台運行作業。一個正在啟動並執行程式稱為進程或者作業,每個進程有一個進程號,PID。一般情況下啟動並執行程式都是在前台啟動並執行,可 以通過Ctrl+D按鍵組合來發送訊號暫停它。暫停進程可以在後台運行也可以把它送回前台運行,當然也可以終止它。
[root@localhost ~]# vi #開啟vi編輯器,並按Ctrl+z暫停它 [1]+ Stopped vi [root@localhost ~]# sleep 400& #加&,表示在後台運行 [2] 5277 [root@localhost ~]# jobs #顯示當前在背景作業 [1]+ Stopped vi [2]- Running sleep 400 & [root@localhost ~]# jobs -l #顯示當前在背景作業和PID [1]+ 5276 Stopped vi [2]- 5277 Running sleep 400 & [root@localhost ~]# jobs %% #顯示最近加入作業表中的命令 [1]+ Stopped vi [root@localhost ~]# fg %1 #fg把作業號為1的作業調到前台來 [root@localhost ~]# kill %1 #把作業號為1的作業殺死 Vim: Caught deadly signal TERM Vim: Finished. |
作業控制命令
命令 |
含義 |
bg |
啟動被終止的後台作業 |
fg |
將後台作業調到前台來 |
jobs |
列出所有正在啟動並執行作業 |
kill |
向指定作業發送kill訊號 |
stop |
掛起一個後台作業 |
stty tostop |
當一個後台作業向終端發送輸出時就掛起它 |
wait[n] |
等待一個指定的作業並返回它的退出狀態,這裡n是一個PID或作業號 |
∧Z(Ctrl-Z) |
終止(掛起)作業。螢幕上將出現提示符 |
|
|
jobs命令的參數 |
含義 |
%n |
作業號n |
%string |
以string開頭的作業名 |
%?string |
作業名包含string |
%% |
當前作業 |
%+ |
當前作業 |
%- |
當前作業前的一個作業 |
-r |
列出所有啟動並執行作業 |
-s |
列出所有掛起的作業 |