版權聲明:本文為部落客原創文章,轉載請注明出處。 https://blog.csdn.net/twilight_karl/article/details/77857203
簡介
工作管理指的是在當個登陸終端中同時管理多個工作的行為。
注意事項
- 目前的登陸終端,隻能管理目前終端的工作,而不能管理其他登陸終端的工作
- 放入背景的指令必須可以持續運作一段事件,這樣我們才能捕捉和操作這個工作
- 放入背景執行的指令不能和前台使用者有互動或需要前台輸入,否則放入背景隻能暫停,而不能執行。放入背景類似于Windows中的最小化
工作管理的方法
-
: 把指令放入背景,并在背景執行指令 &
-
: 按下ctrl + z
快捷鍵,放在背景暫停ctrl + z
背景執行ping指令,發送20個資料包,并将結果儲存到檔案:
ping -c 20 www.baidu.com > baidu.ping &
如果使用
ctrl + z
,程序會放到背景,并暫停
[root@localhost ~]# ping -c 20 www.baidu.com > baidu.ping
^Z
[1]+ Stopped ping -c 20 www.baidu.com > baidu.ping
jobs 指令
顯示所有背景的程序
參數:
- -l : 顯示工作的PID
PS:
+
表示最近一個放入背景的工作,頁就是工作恢複時,預設恢複的工作。
-
代表倒數第二個放入背景的工作
[root@localhost ~]# jobs
[1]+ Stopped ping -c 20 www.baidu.com > baidu.ping
[2]- Running ping -c 20 www.baidu.com > baidu.ping &
恢複到前台執行
- fg %工作号
将背景正在運作的程序後者暫停的程序恢複到前台運作狀态。
%
可以省略
工作号可以用
+
或
-
表示,也可以不寫,預設是
+
。
[root@localhost ~]# fg %1
ping -c 20 www.baidu.com > baidu.ping
恢複到背景執行
- bg %工作号
将背景暫停的程序恢複到在背景運作,對已經在運作的程序不生效
背景恢複執行的指令是不能和前台有及互動的,否則不能恢複到前台執行
[root@localhost ~]# bg 1
[1]+ ping -c 20 www.baidu.com > baidu.ping &
如果該程序已經在背景運作,則不會生效:
[root@localhost ~]# bg 1
-bash: bg: job 1 already in background
脫離終端
指令放入背景執行,隻能在目前登入的終端隻當,一旦使用者退出目前終端背景程式就會終止。使背景程序脫離終端執行的方法有:
- 第一種方法是把需要背景執行的指令加入/etc/rc.local檔案。參考 Linux服務管理—系統運作級别、rpm啟動與自啟動、源碼包的啟動與自啟動
- 第二種方法是使用系統定時任務,讓系統在指定的時間執行某個背景指令
- 第三種方法是使用nohup指令,标準方法
nohup 指令
-
nohup 指令 &
是指令脫離終端,在終端關閉後依然能夠存在
[root@localhost ~]# nohup ping -c 10 www.baidu.com > baidu.ping &
[1] 28065
[root@localhost ~]# nohup: 忽略輸入重定向錯誤到标準輸出端