歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Bash的作業控制

Bash的作業控制

日期:2017/2/28 13:59:41   编辑:Linux教程

作業控制是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

Copyright © Linux教程網 All Rights Reserved