如何調出運行命令 電腦運行命令怎么調出來



文章插圖
如何調出運行命令 電腦運行命令怎么調出來

文章插圖
通常,當您在終端中運行命令時,必須等到命令完成后才能輸入另一個命令 。這稱為在前臺或前臺進程中運行命令 。當某個進程在前臺運行時,它將占用您的shell,并且您可以使用輸入設備與之交互 。
如果命令需要很長時間才能完成,而同時又要運行其他命令怎么辦?您有幾種選擇可以使用 。最明顯和直接的選擇是啟動一個新的Shell會話并在其中運行命令 。另一種選擇是在后臺運行命令 。
后臺進程是從終端啟動并在后臺運行而無需用戶交互的進程/命令 。
在本文中,我們將討論Linux后臺進程 。我們將向您展示如何在后臺啟動命令以及如何在Shell會話關閉后保持進程運行 。
在后臺運行Linux命令
要在后臺運行命令,請在命令末尾添加“&”符號(&):
command &Shell作業ID(用括號括起來)和進程ID將打印在終端上:
[1] 25177您可以同時在后臺運行多個進程 。
后臺進程將繼續向您從中調用命令的終端寫入消息 。要禁止顯示stdout和stderr消息,請使用以下語法:
command > /dev/null 2>&1 & >/dev/null 2>&1表示將stdout重定向到/dev/null,將stderr重定向到stdout 。
使用jobs 命令顯示當前shell會話中所有已停止和后臺進程的狀態:
jobs -l輸出包括作業編號,進程ID,進程狀態以及啟動該進程的命令:
[1]+ 25177 Runningping google.com &要將后臺進程置于前臺,請使用fg命令:
fg如果您有多個后臺作業,請在命令后添加%和作業ID:
fg %1要終止后臺進程,請使用 kill 命令,后跟進程ID:
kill -9 25177將前臺進程移至后臺
要在后臺移動正在運行的前臺進程:
通過鍵入Ctrl+Z停止進程 。通過鍵入bg將停止的進程移至后臺 。在Shell退出后保持后臺進程運行
如果連接斷開或退出Shell會話,則后臺進程將終止 。在交互式shell會話結束后,有幾種方法可以使進程保持運行 。
一種方法是使用內置的disown shell從shell的作業控件中刪除作業:
disown如果您有多個后臺作業,請在命令后添加%和作業ID:
disown %1確認使用jobs -l命令從活動作業表中刪除了該作業 。要列出所有正在運行的進程,包括未運行的進程,請使用 ps aux 命令 。
【如何調出運行命令 電腦運行命令怎么調出來】使進程退出Shell后仍保持運行的另一種方法是使用nohup 。
nohup 命令執行另一個指定為其參數的程序,并忽略所有SIGHUP(掛斷)信號 。SIGHUP是在其控制終端關閉時發送到進程的信號 。
要使用nohup命令在后臺運行命令,請鍵入:
nohup command &命令輸出重定向到nohup.out文件 。
nohup: ignoring input and appending output to 'nohup.out'如果您注銷或關閉終端,則該過程不會終止 。
替代品
有許多程序可讓您同時進行多個互動會話 。
屏幕
Screen 或GNU Screen是一個終端多路復用器程序,可讓您啟動屏幕會話并在該會話內打開任意數量的窗口(虛擬終端) 。即使您已斷開連接,在Screen中運行的進程也將繼續運行,即使它們的窗口不可見 。
Tmux
Tmux 是GNU Screen的現代替代方案 。使用Tmux,您還可以創建一個會話并在該會話中打開多個窗口 。Tmux會話是持久性的,這意味著即使您關閉終端,在Tmux中運行的程序仍會繼續運行 。
結論
要在后臺運行命令,請在命令末尾包含& 。當您在后臺運行命令時,不必等到命令完成就可以執行另一條命令 。
如果您有任何問題或反饋,請隨時發表評論 。