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函數簡述
Linux Bash指令碼程式設計語言中的美學與哲學
提高Linux工作效率的十大bash技巧
bash的登入與歡迎資訊:/etc/issue,/etc/motd
Bash常用的幾個設定檔
Bash指令碼15分鐘進階教程
10個 Linux/Unix下 Bash 和 KSH shell 的作業控制執行個體
Ubuntu下shell指令碼運行異常:Bash和dash的區別
Bash指令碼之for語句if語句以及各種測試語句
什麼是Bash Shell的內建(build in)命令
分享有用的 bash 別名和函數
Linux Bash Shell入門教程
本文永久更新連結地址: