Linux系統管理-工作管理(後臺程式管理)

twilight0402發表於2017-09-05

版權宣告:本文為博主原創文章,轉載請註明出處。 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: 忽略輸入重定向錯誤到標準輸出端


相關文章