主頁(yè) > 知識(shí)庫(kù) > 在后臺(tái)運(yùn)行Linux命令的方法

在后臺(tái)運(yùn)行Linux命令的方法

熱門(mén)標(biāo)簽:高德地圖標(biāo)注在建線(xiàn)路 山東400電話(huà)如何辦理 宿州防封外呼系統(tǒng)廠(chǎng)家 濟(jì)源電話(huà)外呼系統(tǒng)怎么樣 電話(huà)機(jī)器人服務(wù)差 ai電銷(xiāo)機(jī)器人 如何開(kāi)發(fā) 智能外呼系統(tǒng)如何部署 電銷(xiāo)機(jī)器人對(duì)公司貢獻(xiàn) 蘭州語(yǔ)音電銷(xiāo)機(jī)器人軟件

通常情況下,當(dāng)你在終端運(yùn)行一個(gè)命令,在你開(kāi)始輸入另外一個(gè)命令之前,你必須等待當(dāng)前命令運(yùn)行結(jié)束。這被稱(chēng)為在前臺(tái)運(yùn)行命令,或者前臺(tái)進(jìn)程。當(dāng)一個(gè)進(jìn)程在前臺(tái)運(yùn)行時(shí),它占用了你的 shell,并且你可以通過(guò)輸入設(shè)備和它進(jìn)行交互。

那么當(dāng)一個(gè)命令運(yùn)行需要很長(zhǎng)時(shí)間,而你又想同時(shí)運(yùn)行另外的命令,應(yīng)該怎么辦?有幾種選項(xiàng)可以選擇。最明顯并且最直接的選項(xiàng)就是啟動(dòng)一個(gè)新的 Shell 會(huì)話(huà),并且在上面運(yùn)行命令。另外一個(gè)選項(xiàng),就是在后臺(tái)運(yùn)行命令。

一個(gè)后臺(tái)進(jìn)程就是說(shuō)一個(gè)進(jìn)程/命令在終端啟動(dòng)后,運(yùn)行在后臺(tái),并且不會(huì)和用戶(hù)發(fā)生任何交互。

在這篇文章中,我們將會(huì)討論在 Linux 中的后臺(tái)進(jìn)程。我們將會(huì)為你演示如何在后臺(tái)啟動(dòng)命令,并且保持進(jìn)程直到會(huì)話(huà)結(jié)束。

在后臺(tái)運(yùn)行一個(gè) Linux 命令

為了在后臺(tái)運(yùn)行命令,請(qǐng)?jiān)诿畹暮竺嫣砑右粋€(gè)符號(hào)(&):

command &

這個(gè) shell 的任務(wù) id(被括號(hào)包圍的內(nèi)容)和進(jìn)程 ID 將會(huì)被打印在終端:

[1] 25177

你可以在后臺(tái)同時(shí)運(yùn)行很多進(jìn)程。

后臺(tái)進(jìn)程會(huì)將不斷地將信息寫(xiě)在終端上。為了禁止stdoutstderr信息,請(qǐng)使用下面的語(yǔ)法:

command > /dev/null 2>&1 &

>/dev/null 2>&1 意味著 將stdout轉(zhuǎn)向/dev/null,而 stderr轉(zhuǎn)向sdtout。

使用jobs命令顯示當(dāng)前 shell 會(huì)話(huà)中所有停止的和后臺(tái)的任務(wù)狀態(tài)。

jobs -l

輸出內(nèi)容包括任務(wù) id,進(jìn)程 ID,任務(wù)狀態(tài)和啟動(dòng)任務(wù)的命令:

[1]+ 25177 Running   ping google.com &

想要將后臺(tái)進(jìn)程轉(zhuǎn)到前臺(tái)的話(huà),請(qǐng)使用fg命令:

fg

如果你在后臺(tái)有多個(gè)任務(wù),請(qǐng)?jiān)诿詈筇砑?code>%+任務(wù) ID:

fg %1

想要停止后臺(tái)進(jìn)程,請(qǐng)?jiān)?code>kill命令后添加進(jìn)程 ID:

kill -9 25177

將前臺(tái)進(jìn)程移動(dòng)到后臺(tái)

想要將一個(gè)前臺(tái)進(jìn)程移動(dòng)到后臺(tái):

01.通過(guò)按鍵Ctrl+Z停止當(dāng)前進(jìn)程

02.通過(guò)輸入bg將停止進(jìn)程移動(dòng)到后臺(tái)去

保持后臺(tái)進(jìn)程運(yùn)行直到 Shell 退出

如果你丟失了連接,或者你退出了 Shell 會(huì)話(huà),后臺(tái)進(jìn)程將會(huì)被終止。有很多方法可以保證進(jìn)程運(yùn)行直到交互的 Shell 結(jié)束。

一個(gè)方法就是從 Shell 任務(wù)控制中移除任務(wù),使用內(nèi)建的disown

disown

如果你有很多后臺(tái)任務(wù),請(qǐng)?jiān)诿詈竺嫣砑?code>%+任務(wù) ID:

disown %1

通過(guò)使用jobs -l來(lái)確認(rèn)任務(wù)已經(jīng)從任務(wù)表中移除。為了列出正在運(yùn)行的進(jìn)程,請(qǐng)使用ps aux命令。

另外一個(gè)保證進(jìn)程運(yùn)行,直到 Shell 退出的方法就是使用nohup。

nohup命令后面跟著另外一個(gè)程序作為參數(shù),將會(huì)忽略所有的SIGHUP(掛起)信號(hào)。SIGHUP信號(hào)用來(lái)發(fā)送給進(jìn)程,用來(lái)通知終端已經(jīng)關(guān)閉了。

使用nohup命令來(lái)在后臺(tái)運(yùn)行命令,請(qǐng)輸入:

nohup command &

命令輸出將會(huì)重定向到nohup.out文件。

nohup: ignoring input and appending output to 'nohup.out'

如果你登出或者關(guān)閉終端,進(jìn)程不會(huì)被終止。

替代方案

有一些程序允許你在同一時(shí)間擁有多個(gè)非交互會(huì)話(huà)。

Screen

Screen 或者 GNU Screen 是一個(gè)終端多路復(fù)用程序,它允許你打開(kāi)一個(gè)屏幕會(huì)話(huà),并且在會(huì)話(huà)中打開(kāi)任意多數(shù)量的窗口(虛擬終端)。在 Screen 中運(yùn)行的進(jìn)程,即便窗口不可見(jiàn),甚至你失去連接,它們依然會(huì)運(yùn)行。

Tmux

Tmux 是一個(gè)現(xiàn)代化的 GNU 屏幕交互程序。通過(guò) Tmux,你可以創(chuàng)建一個(gè)會(huì)話(huà),然后再會(huì)話(huà)中打開(kāi)多個(gè)窗口。Tmux 會(huì)話(huà)是持久性的,這意味著即便你關(guān)閉了終端,這些 Tmux 上運(yùn)行的程序依然會(huì)運(yùn)行。

總結(jié)

為了在后臺(tái)運(yùn)行命令,請(qǐng)?jiān)诿畹暮竺嫣砑臃?hào)&

當(dāng)你在后臺(tái)運(yùn)行命令時(shí),你可以不需要等待它結(jié)束,就可以接著運(yùn)行另外一個(gè)命令。

以上就是在后臺(tái)運(yùn)行Linux命令的方法的詳細(xì)內(nèi)容,更多關(guān)于后臺(tái)運(yùn)行Linux命令的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

標(biāo)簽:佛山 云南 晉中 衡水 安陽(yáng) 南寧 巴中 畢節(jié)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《在后臺(tái)運(yùn)行Linux命令的方法》,本文關(guān)鍵詞  在,后臺(tái),運(yùn)行,Linux,命令,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《在后臺(tái)運(yùn)行Linux命令的方法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于在后臺(tái)運(yùn)行Linux命令的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章