如何在后臺(tái)運(yùn)行Linux命令?
作者:JackTian
微信公眾號(hào):杰哥的IT之旅(ID:Jake_Internet)
通常情況下,在 Linux 終端中運(yùn)行命令時(shí),我們必須等前一命令執(zhí)行完成后,在輸入并執(zhí)行后一條命令,稱之為在前臺(tái)或前臺(tái)進(jìn)程中運(yùn)行命令,進(jìn)程在前臺(tái)運(yùn)行時(shí),將占用您的外殼,并且您也可以使用輸入設(shè)備與其終端進(jìn)行交互。
當(dāng)一條命令執(zhí)行需要很長時(shí)間才能完成,并且想同時(shí)運(yùn)行其他命令怎么辦呢?
第一:啟動(dòng)新的 Shell 會(huì)話并在其中運(yùn)行命令;
第二:在后臺(tái)運(yùn)行命令;
后臺(tái)進(jìn)程是從終端啟動(dòng)并在后臺(tái)運(yùn)行,無需用戶與其終端進(jìn)行交互的進(jìn)程及命令;
1、組合鍵及命令
以 httpd-2.2.17.tar.gz 壓縮包為例,比如一個(gè)壓縮包文件解壓需在終端屏幕下解壓很長時(shí)間,甚至要刷很長一段屏幕才能解壓完畢,那么我們可以按下Ctrl+Z組合鍵,便可以暫停運(yùn)行并隱藏到后臺(tái),將會(huì)返回一個(gè)停止序號(hào),此時(shí)進(jìn)程時(shí)暫停的,并不會(huì)繼續(xù)運(yùn)行。
輸入bg命令即可繼續(xù)將該任務(wù)在后臺(tái)執(zhí)行。
輸入fg + 序號(hào)命令即可讓進(jìn)程返回到前臺(tái)執(zhí)行。
執(zhí)行過程中,可以輸入jobs命令來查看所有的后臺(tái)任務(wù)了。
# tar -zxf httpd-2.2.17.tar.gz ## 解壓 httpd 壓縮包
^Z ## 按下 Ctrl+Z 組合鍵暫停
[1]+ Stopped tar -zxf httpd-2.2.17.tar.gz
# bg ## 輸入 bg 命令,繼續(xù)在后臺(tái)運(yùn)行
[1]+ tar -zxf httpd-2.2.17.tar.gz &
# jobs ## 查看所有的后臺(tái)任務(wù)
[1]+ Done tar -zxf httpd-2.2.17.tar.gz
2、&
在執(zhí)行命令后加&,使其在終端后臺(tái)運(yùn)行。
# ./yum_install.sh &
執(zhí)行完如上命令,yum腳本便在后臺(tái)運(yùn)行,雖然在后臺(tái)運(yùn)行了,但輸出的內(nèi)容還是會(huì)在終端上進(jìn)行顯示的,那么我們可以采用將執(zhí)行后的命令輸出結(jié)果重定向到文件中。
# ./yum_install.sh >> 202001141411out.txt 2>&1 &
將執(zhí)行的結(jié)果重定向到202001141411out.txt文件中,2>&1將標(biāo)準(zhǔn)錯(cuò)誤重定向到標(biāo)準(zhǔn)輸出,判斷yum腳本文件執(zhí)行成功沒成功,我們只需查看202001141411out.txt文件即可;
如果出現(xiàn)腳本文件執(zhí)行了一段時(shí)間,卡死,無法繼續(xù)運(yùn)行了,可以通過第一種方法:jobs命令
# jobs -l
或者使用ps命令
# ps -aux | grep yum_install.sh
3、nohup
&:可以使命令在后臺(tái)運(yùn)行,當(dāng)關(guān)閉控制臺(tái)時(shí),進(jìn)程也將會(huì)被殺死,如果希望關(guān)閉控制臺(tái)后,進(jìn)程依舊運(yùn)行,這時(shí)則需要使用nohup。
nohup:no hang up,不掛起的意思。
在執(zhí)行命令最前面使用nohup,當(dāng)關(guān)閉控制臺(tái)時(shí),進(jìn)程依舊會(huì)在后臺(tái)繼續(xù)運(yùn)行。
# nohup ./yum_install.sh &
如上nohup執(zhí)行方式,當(dāng)判斷該腳本是否執(zhí)行完畢,可執(zhí)行命令ps -aux | grep yum_install.sh查看;
除此之外,我們可以將運(yùn)行結(jié)果輸出到nohup.log文件中,當(dāng)沒有指定輸出重定向時(shí),日志文件會(huì)默認(rèn)輸出到nohup.out文件;
# nohup ./yum_install.sh > nohup.log 2>&1 &
如果覺得這篇文章對(duì)你有所幫助,麻煩點(diǎn)個(gè)
在看、留言、轉(zhuǎn)發(fā),支持一波,感謝!
PS:對(duì)了,公眾號(hào)最近新上線了一個(gè)贊賞自動(dòng)回復(fù)的新功能,開個(gè)贊賞體驗(yàn)一下,贊賞之后你將會(huì)收到一條回復(fù)消息,來試試看!
本公眾號(hào)全部博文已整理成一個(gè)目錄,請(qǐng)?jiān)诠娞?hào)后臺(tái)回復(fù)「m」獲取!
