2021-05-12 14:32:11
Bash的作業控制
作業控制是bash Shell提供的一項強大功能,它允許你選擇在前台還是後台執行程式,即作業。
1、開啟bash的作業控制功能
#set -o monitor
或
#set -m
2、顯示在後台執行的作業
#jobs
[1]- 執行中 gedit &
[2]+ 執行中 sleep 1000 &
+代表最後放到後台執行的作業
-代表倒數第二個放到後台執行的作業
#jobs -l //會顯示PID
[1]- 3403 執行中 gedit &
[2]+ 3408 執行中 sleep 1000 &
#jobs %% //顯示在作業表中最近執行的命令
[2]+ 執行中 sleep 1000 &
#jobs -r //列出所有正在執行的作業
#jobs -s //列出所有掛起(暫停執行)的作業
3、作業控制:fg和bg命令
# gedit & //將作業丟到後台執行
[1] 15465
#fg %1 //將作業放到前台執行
gedit
^Z //將前台作業送後台,並掛起(暫停執行),顯示提示符
#bg %1 //啟動後台停止的作業1
#kill %1 //殺掉作業1
#kill -9 %1 //強制殺掉作業1
kill常用信號:
-1 :重新讀取一次引數的組態檔 (類似 reload);
-2 :代表和由鍵盤輸入 [ctrl]-c 同樣的動作;
-9 :立刻強制刪除一個工作;
-15:以正常的程式方式終止一頃工作。與-9 是不一樣的。
#disown %1 //將作業1從從作業表中移除,shell不會將其識別為可用的作業(成為一個正常的進程,ps能檢視)
4、終端後台和系統後台
在終端模式下,通過& 或 ^Z放到後台的作業都是放到終端的後台,而不是系統後台。當後台任務未執行完,而終端退出時(exit),終端後台的任務會終止。
系統後台的任務則不會隨著終端的退出而終止,與終端無關。
可以通過at命令或nohup命令將作業放到系統後台執行,當退出終端或登出系統後,程式還能夠工作繼續執行。
通過nohup執行的程式的輸出,都重定向到~/nohup.out檔案中。
nohup不支援Bash內建命令,只支援外部程式。
#nohup cmd
#nohup cmd &
Bash函數簡述 http://www.linuxidc.com/Linux/2015-06/118796.htm
Linux Bash指令碼程式語言中的美學與哲學 http://www.linuxidc.com/Linux/2015-03/114436.htm
提高Linux工作效率的十大bash技巧 http://www.linuxidc.com/Linux/2015-03/114349.htm
bash的登入與歡迎資訊:/etc/issue,/etc/motd http://www.linuxidc.com/Linux/2014-08/105419.htm
Bash常用的幾個組態檔 http://www.linuxidc.com/Linux/2014-08/105202.htm
Bash指令碼15分鐘進階教學 http://www.linuxidc.com/Linux/2014-04/100750.htm
10個 Linux/Unix下 Bash 和 KSH shell 的作業控制範例 http://www.linuxidc.com/Linux/2014-03/98159.htm
Ubuntu下shell指令碼執行異常:Bash和dash的區別 http://www.linuxidc.com/Linux/2013-10/91100.htm
Bash指令碼之for語句if語句以及各種測試語句 http://www.linuxidc.com/Linux/2013-07/87922.htm
什麼是Bash Shell的內建(build in)命令 http://www.linuxidc.com/Linux/2013-06/86039.htm
分享有用的 bash 別名和函數 http://www.linuxidc.com/Linux/2015-01/111178.htm
Linux Bash Shell入門教學 http://www.linuxidc.com/Linux/2013-08/8848.htm
本文永久更新連結地址:http://www.linuxidc.com/Linux/2015-08/120877.htm
相關文章