您好,登錄后才能下訂單哦!
小編給大家分享一下Linux中后臺執行作業的命令是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
作業(Job)是shell管理的進程(每個job都有一個關聯的PID),每個作業會被分配一個線性job ID。
有兩種形式的作業:
使用作業控制命令,您可以在Shell中運行和管理多個作業。但是你只能在啟動作業的Shell中使用作業控制命令。
命令 | 描述 |
---|---|
jobs | 列出所有的Job, 后面可接參數進行過濾 |
bg %n | 將當前/指定Job放置到后臺運行 |
fg %n | 將當前/指定Job帶到前臺運行 |
另外還有一些與作業有關的快速操作:
在原命令的最后加上 &,可讓這個作業在后臺運行。下面的例子:在后臺執行sleep命令
$ sleep 100 &
[1] 14488
shell返回結果:中括號內是job ID, 后面是PID;之后使用jobs命令查看狀態:100s之后這個后臺作業執行完成
[root@recv-data recv]# jobs
[1]+ Running sleep 100 &
....
[root@recv-data recv]# jobs
[1]+ Done sleep 100
對于前臺作業,
執行Ctrl+Z
可以將前臺作業中止,并放置在后臺;之后可以使用bg %n
命令讓中止的后臺作業跑起來。
# 將前臺作業中止,并放置到后臺
$ sleep 100
^Z
[1]+ Stopped sleep 100
$ jobs
[1]+ Stopped sleep 100
# bg命令讓后臺中止的作業跑起來
$ bg % 1
[1]+ sleep 100 &
處于后臺的作業,fg %n
切換回前臺執行。
# 下面顯示一個正在運行的后臺作業
$ jobs
[1]+ Running sleep 100 &
# 切換回前臺運行
$ fg %1
sleep 100
“眾所周知, Ctrl+C終止當前前臺作業,不多說。
“很多時候,你是通過ssh登錄到遠程服務器,再執行Shell腳本或命令,如果你退出了終端(終止遠程連接),則該進程/命令將被殺死。如果不確定該作業何時完成,則最好讓該作業在后臺運行,但是,如果你退出系統,該作業將被Shell停止并終止,當進程收到SIGHUP時,如何使作業在后臺運行?
這個時候,我們就要使用nohup
命令,讓我們長時間運行的Shell腳本或命令在我們退出系統依舊能執行(此時一般搭配&
后臺執行)。
“顧名思義:nohup是用于忽略HUP(掛斷)信號的POSIX命令。
以上是“Linux中后臺執行作業的命令是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。