linux后臺執(zhí)行命令&和nohup的具體使用方法
當(dāng)我們在終端或控制臺工作時,可能不希望由于運行一個作業(yè)而占住了屏幕,因為可能還有更重要的事情要做,比如閱讀電子郵件。對于密集訪問磁盤的進程,我們更希望它能夠在每天的非負荷高峰時間段運行(例如凌晨)。為了使這些進程能夠在后臺運行,也就是說不在終端屏幕上運行,有幾種選擇方法可供使用。
&
當(dāng)在前臺運行某個作業(yè)時,終端被該作業(yè)占據(jù);可以在命令后面加上& 實現(xiàn)后臺運行。例如:sh test.sh &
適合在后臺運行的命令有f i n d、費時的排序及一些s h e l l腳本。在后臺運行作業(yè)時要當(dāng)心:需要用戶交互的命令不要放在后臺執(zhí)行,因為這樣你的機器就會在那里傻等。不過,作業(yè)在后臺運行一樣會將結(jié)果輸出到屏幕上,干擾你的工作。如果放在后臺運行的作業(yè)會產(chǎn)生大量的輸出,最好使用下面的方法把它的輸出重定向到某個文件中:
command > out.file 2>&1 &
這樣,所有的標準輸出和錯誤輸出都將被重定向到一個叫做out.file 的文件中。
PS:當(dāng)你成功地提交進程以后,就會顯示出一個進程號,可以用它來監(jiān)控該進程,或殺死它。(ps -ef | grep 進程號 或者 kill -9 進程號)
nohup
使用&命令后,作業(yè)被提交到后臺運行,當(dāng)前控制臺沒有被占用,但是一但把當(dāng)前控制臺關(guān)掉(退出帳戶時),作業(yè)就會停止運行。nohup命令可以在你退出帳戶之后繼續(xù)運行相應(yīng)的進程。nohup就是不掛起的意思( no hang up)。該命令的一般形式為:
nohup command &
如果使用nohup命令提交作業(yè),那么在缺省情況下該作業(yè)的所有輸出都被重定向到一個名為nohup.out的文件中,除非另外指定了輸出文件:
nohup command > myout.file 2>&1 &
使用了nohup之后,很多人就這樣不管了,其實這樣有可能在當(dāng)前賬戶非正常退出或者結(jié)束的時候,命令還是自己結(jié)束了。所以在使用nohup命令后臺運行命令之后,需要使用exit正常退出當(dāng)前賬戶,這樣才能保證命令一直在后臺運行。
ctrl + z
可以將一個正在前臺執(zhí)行的命令放到后臺,并且處于暫停狀態(tài)。
Ctrl+c
終止前臺命令。
jobs
查看當(dāng)前有多少在后臺運行的命令。
jobs -l選項可顯示所有任務(wù)的PID,jobs的狀態(tài)可以是running, stopped, Terminated。但是如果任務(wù)被終止了(kill),shell 從當(dāng)前的shell環(huán)境已知的列表中刪除任務(wù)的進程標識。
2>&1解析
command >out.file 2>&1 &
- command>out.file是將command的輸出重定向到out.file文件,即輸出內(nèi)容不打印到屏幕上,而是輸出到out.file文件中。
- 2>&1 是將標準出錯重定向到標準輸出,這里的標準輸出已經(jīng)重定向到了out.file文件,即將標準出錯也輸出到out.file文件中。最后一個&, 是讓該命令在后臺執(zhí)行。
- 試想2>1代表什么,2與>結(jié)合代表錯誤重定向,而1則代表錯誤重定向到一個文件1,而不代表標準輸出;換成2>&1,&與1結(jié)合就代表標準輸出了,就變成錯誤重定向到標準輸出.
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Apache環(huán)境下配置多個ssl證書搭建多個站點的方法
這篇文章主要介紹了Apache環(huán)境下配置多個ssl證書搭建多個站點的方法,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2018-07-07
apache ab工具頁面壓力測試返回結(jié)果含義解釋
這篇文章主要介紹了apache ab工具頁面壓力測試返回結(jié)果含義解釋,ab工具的使用非常簡單,但返回結(jié)果中的數(shù)據(jù)有點多,看不懂的話就需要看看本文了,需要的朋友可以參考下2015-07-07
關(guān)于Linux操作系統(tǒng)下終端亂碼的完美解決方法
下面小編就為大家?guī)硪黄P(guān)于Linux操作系統(tǒng)下終端亂碼的完美解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10

