如何在后臺運行 Linux 命令
Linux 命令是使用終端與系統(tǒng)交互的好方法。但是,有時可能需要一段時間才能完成手頭的任務。這迫使用戶等待相當長的時間或完全生成一個新的 shell。
幸運的是,您可以通過一些簡單的方法在后臺運行 Linux 命令。本文的其余部分說明了其中一些方法。
1、在你的命令后添加一個 &
運行 Linux 后臺命令的最簡單方法是在命令后添加與號 (&)。例如,如果從終端啟動 gedit 文本編輯器,則在關(guān)閉編輯器之前無法使用 shell。但是,當您在命令中添加額外的 & 時,您將能夠立即使用 shell。
gedit &
對于需要長時間執(zhí)行的任務,&符號可以使當前終端窗口不被占用,這樣就能繼續(xù)在同一個終端上工作,甚至關(guān)閉終端窗口也不會影響任務的正常執(zhí)行。不過需要注意的是,如果要求這個任務輸出內(nèi)容到標準輸出中(例如 echo 或 ls),即便使用了 &,也會等待這些輸出任務在前臺運行完畢;當使用 &將一個進程放置到后臺運行的時候,Bash 會提示這個進程的進程 ID。在 Linux 系統(tǒng)中運行的每一個進程都有一個唯一的進程 ID,我們可以使用進程 ID 來暫停、恢復或者終止對應的進程。
2、使用bg向后臺發(fā)送運行命令
有時您運行一個命令,卻發(fā)現(xiàn)它需要很長的時間才能完成。通過按Ctrl + Z鍵,可以將一個正在前臺執(zhí)行的命令放到后臺,并且暫停。您可以通過 在終端中輸入jobs來查看所有后臺任務的列表。使用fg命令將后臺中的命令調(diào)至前臺繼續(xù)運行。您可以通過 在終端中輸入jobs來查看所有后臺任務的列表。使用fg命令將后臺中的命令調(diào)至前臺繼續(xù)運行。
然后使用bg命令,將一個在后臺暫停的命令,變成繼續(xù)執(zhí)行。如果后臺中有多個命令,可以用bg %jobnumber將選中的命令調(diào)出,%jobnumber是通過jobs命令查到的后臺正在執(zhí)行的命令的序號(不是pid)
3、使用 nohup 向后臺發(fā)送命令
Linux 中 的nohup命令允許管理員運行不受掛斷(Hang Up)信號影響的終端命令。您可以使用 nohup 在后臺運行 Linux 命令。
下面的示例在后臺運行Nmap 端口掃描。
- nohup sudo nmap -sS --top-ports=15 192.168.150.1/24
nohup 的一個主要好處是,即使您退出 shell,您的命令也會運行。此外,它會生成執(zhí)行的日志文件。在當前目錄或 $HOME 中查找nohup.out。
原文鏈接:https://www.linuxmi.com/linux-mingling-houtai-yunxing.html
4、使用系統(tǒng)重定向運行后臺命令
您還可以使用系統(tǒng)重定向在 Linux 中運行后臺命令。例如,如果您運行以下ping命令,您的 shell 將在后臺運行它并立即返回終端提示。
- ping -c5 8.8.8.8 >Linuxmi.com.log 2>&1 &
這里 ping 命令的輸出被重定向到output.log文件。如果你想丟棄結(jié)果,你可以用/dev/null替換它。的2>&1是告訴bash到任何錯誤重定向到相同的文件。最后的&指示 bash 在后臺運行此命令。
5.、使用 disown 將 Linux 命令設(shè)置為后臺運行
Linux 中 的disown命令可以輕松地在后臺運行命令。首先,您需要使用& 運算符在后臺發(fā)送任務。然后,鍵入disown以將其與shell分離。
- gedit & disown
disown 的一個主要優(yōu)點是,與 nohup 一樣,當您關(guān)閉 shell 或注銷時,系統(tǒng)不會終止您的任務。
6、使用 Tmux 在后臺運行 Linux 命令
Tmux 是一個強大的多路復用器,它允許我們在單個窗口中運行多個終端會話。對于不熟悉它的人來說,學習 tmux 是一個很好的選擇。Tmux 使在 Linux 中運行后臺命令毫不費力。
- tmux new -d 'ping -c 10 8.8.8.8 > www.linuxmi.com.log'
當您運行上述tmux命令時,它將在單獨的 shell 中執(zhí)行ping命令并將其保留在后臺。您可以使用此方法在后臺執(zhí)行任何 Linux 命令。
相關(guān):如何為 Linux 安裝和配置 Tmux 鏈接見 https://www.linuxmi.com/linux-tmux.html
將您的 Linux 命令留在后臺
能夠在后臺運行命令使系統(tǒng)管理對管理員來說更有效率。您可以通過多種方式為您的任務做背景。像&和Ctrl + Z這樣的 Bash 功能很方便,但系統(tǒng)會在 shell 關(guān)閉時終止后臺作業(yè)。另一方面,即使您注銷或終止 shell ,諸如nohup和disown 之類的工具也會使您的命令保持運行。
如果您將程序長時間留在后臺,如果編碼不當,它們可能會變成僵尸進程。這些過程會顯著降低系統(tǒng)速度。因此,請確保每隔一段時間識別并殺死僵尸進程。