溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux中后臺(tái)執(zhí)行作業(yè)的命令是什么

發(fā)布時(shí)間:2021-11-20 17:26:03 來源:億速云 閱讀:432 作者:小新 欄目:大數(shù)據(jù)

小編給大家分享一下Linux中后臺(tái)執(zhí)行作業(yè)的命令是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!


 

Linux作業(yè)

作業(yè)(Job)是shell管理的進(jìn)程(每個(gè)job都有一個(gè)關(guān)聯(lián)的PID),每個(gè)作業(yè)會(huì)被分配一個(gè)線性job ID。
有兩種形式的作業(yè):

  1. Foreground: 當(dāng)你在終端窗口輸入命令,這個(gè)命令將會(huì)占據(jù)終端窗口,直到命令執(zhí)行完成, 這是一個(gè)前臺(tái)Job
  2. Background: 當(dāng)你在命令后面添加& 符號(hào),命令將不會(huì)占據(jù)終端窗口(你可在shell prompt繼續(xù)輸入),這是一個(gè)后臺(tái)Job
 

Linux作業(yè)控制命令

使用作業(yè)控制命令,您可以在Shell中運(yùn)行和管理多個(gè)作業(yè)。但是你只能在啟動(dòng)作業(yè)的Shell中使用作業(yè)控制命令。

命令描述
jobs列出所有的Job, 后面可接參數(shù)進(jìn)行過濾
bg %n將當(dāng)前/指定Job放置到后臺(tái)運(yùn)行
fg %n將當(dāng)前/指定Job帶到前臺(tái)運(yùn)行

另外還有一些與作業(yè)有關(guān)的快速操作:

  1. & :讓命令或者腳本在后臺(tái)運(yùn)行
  2. Ctrl+Z:中斷前臺(tái)作業(yè),并放置在后臺(tái)
  3. Ctrl+C:終止當(dāng)前前臺(tái)作業(yè)
  4. nohup:即使關(guān)閉終端也會(huì)執(zhí)行(一般搭配上面的&)
 

在后臺(tái)運(yùn)行作業(yè)

在原命令的最后加上 &,可讓這個(gè)作業(yè)在后臺(tái)運(yùn)行。下面的例子:在后臺(tái)執(zhí)行sleep命令

$ sleep 100 & 
[1] 14488
 

shell返回結(jié)果:中括號(hào)內(nèi)是job ID, 后面是PID;之后使用jobs命令查看狀態(tài):100s之后這個(gè)后臺(tái)作業(yè)執(zhí)行完成

[root@recv-data recv]# jobs
[1]+  Running                 sleep 100 &
....
[root@recv-data recv]# jobs
[1]+  Done                    sleep 100
   

管理作業(yè)

對(duì)于前臺(tái)作業(yè),
執(zhí)行Ctrl+Z可以將前臺(tái)作業(yè)中止,并放置在后臺(tái);之后可以使用bg %n命令讓中止的后臺(tái)作業(yè)跑起來。

# 將前臺(tái)作業(yè)中止,并放置到后臺(tái)
$ sleep 100
^Z
[1]+  Stopped                 sleep 100

$ jobs
[1]+  Stopped                 sleep 100

# bg命令讓后臺(tái)中止的作業(yè)跑起來
$ bg % 1
[1]+ sleep 100 &
 

處于后臺(tái)的作業(yè),fg %n切換回前臺(tái)執(zhí)行。

# 下面顯示一個(gè)正在運(yùn)行的后臺(tái)作業(yè)
$ jobs
[1]+  Running                 sleep 100 &

# 切換回前臺(tái)運(yùn)行
$ fg %1
sleep 100


 
“  

眾所周知, Ctrl+C終止當(dāng)前前臺(tái)作業(yè),不多說。

 
nohup:關(guān)閉終端也執(zhí)行
“  

很多時(shí)候,你是通過ssh登錄到遠(yuǎn)程服務(wù)器,再執(zhí)行Shell腳本或命令,如果你退出了終端(終止遠(yuǎn)程連接),則該進(jìn)程/命令將被殺死。如果不確定該作業(yè)何時(shí)完成,則最好讓該作業(yè)在后臺(tái)運(yùn)行,但是,如果你退出系統(tǒng),該作業(yè)將被Shell停止并終止,當(dāng)進(jìn)程收到SIGHUP時(shí),如何使作業(yè)在后臺(tái)運(yùn)行?

這個(gè)時(shí)候,我們就要使用nohup命令,讓我們長(zhǎng)時(shí)間運(yùn)行的Shell腳本或命令在我們退出系統(tǒng)依舊能執(zhí)行(此時(shí)一般搭配&后臺(tái)執(zhí)行)。

“  

顧名思義:nohup是用于忽略HUP(掛斷)信號(hào)的POSIX命令。

以上是“Linux中后臺(tái)執(zhí)行作業(yè)的命令是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI