天天看點

Linux系統管理-工作管理(背景程式管理)簡介工作管理的方法脫離終端

版權聲明:本文為部落客原創文章,轉載請注明出處。 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           

脫離終端

指令放入背景執行,隻能在目前登入的終端隻當,一旦使用者退出目前終端背景程式就會終止。使背景程序脫離終端執行的方法有:

nohup 指令

  • nohup 指令 &

    是指令脫離終端,在終端關閉後依然能夠存在

[root@localhost ~]# nohup ping -c 10  www.baidu.com > baidu.ping &
[1] 28065
[root@localhost ~]# nohup: 忽略輸入重定向錯誤到标準輸出端
           

繼續閱讀