文章轉自 https://blog.csdn.net/java3344520/article/details/7324874,好文要頂,感謝分享!!!
當你用shell啟動一個程式時,往往他是在前台工作的。 例如經常用PUTTY連接配接到遠端伺服器執行腳本的時候,如果本地網絡中斷後,這個時候前台程序就結束了,比較的懊惱,必須重新執行。是以有必要進行前背景程序的切換。
Shell支援作用控制,有以下指令:
1. command & 讓程序在背景運作
在Linux終端運作指令的時候,在指令末尾加上 & 符号,就可以讓程式在背景運作
(例如直接在終端裡輸入firefox,那麼會打開firefox,但當你關閉此終端或者ctrl+c強制終止時,firefox也随機關閉了。你可以在執行時後面加一個&,這樣就在背景工作了。)
2. jobs –l 檢視背景運作的程序
"n"為jobs檢視到的程序編号
[[email protected] ~]$ jobs -l
[1]+ 4524 Stopped ins.sh
jobs指令執行的結果,+表示是一個目前的作業,減号表是是目前作業之後的一個作業。
jobs -l選項可顯示所有任務的PID,jobs的狀态可以是running, stopped, Terminated
3. fg %n 讓背景運作的程序n到前台來
可以用 fg %[number] 指令把一個程式掉到前台運作
[[email protected] ~]$ fg %1
./tcpserv01
4. bg %n 讓程序n到背景去;
bg将一個在背景暫停的指令,變成繼續執行如果背景中有多個指令,可以用bg %jobnumber将選中的指令調出.
[[email protected] ~]$ bg %1
[[email protected] ~]$ jobs -l
[1]+ 4524 Running ins.sh
5.kill %n 終止背景程式
也可以直接終止背景運作的程式,使用 kill 指令
[[email protected] ~]$ kill %1
但是如果任務被終止了(kill),shell 從目前的shell環境已知的清單中删除任務的程序辨別;也就是說,jobs指令顯示的是目前shell環境中所起的背景正在運作或者被挂起的任務資訊。