詳述Linux后臺(tái)運(yùn)行命令(三)
Linux后臺(tái)運(yùn)行命令前面介紹了cron和crontab、at這兩個(gè)命令,后面這里繼續(xù)介紹&,使用這個(gè)命令將不會(huì)占據(jù)終端,將進(jìn)程放入后臺(tái)運(yùn)行。還是要講Linux后臺(tái)運(yùn)行命令加以比較學(xué)習(xí),結(jié)合舉例印象更深。
&
當(dāng)在前臺(tái)運(yùn)行某個(gè)作業(yè)時(shí),終端被該作業(yè)占據(jù);而在后臺(tái)運(yùn)行作業(yè)時(shí),它不會(huì)占據(jù)終端??梢允褂?amp;命令把作業(yè)放到后臺(tái)執(zhí)行。
該命令的一般形式為:
命令&
在后臺(tái)運(yùn)行作業(yè)時(shí)要當(dāng)心:需要用戶交互的命令不要放在后臺(tái)執(zhí)行,因?yàn)檫@樣你的機(jī)器就會(huì)在那里傻等。
不過,作業(yè)在后臺(tái)運(yùn)行一樣會(huì)將結(jié)果輸出到屏幕上,干擾你的工作。如果放在后臺(tái)運(yùn)行的作業(yè)會(huì)產(chǎn)生大量的輸出,***使用下面的方法把它的輸出重定向到某個(gè)文件中:
command >out.file 2>&1 &
在上面的例子中,2>&1表示所有的標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出都將被重定向到一個(gè)叫做out.file 的文件中。
當(dāng)你成功地提交進(jìn)程以后,就會(huì)顯示出一個(gè)進(jìn)程號,可以用它來監(jiān)控該進(jìn)程,或殺死它。
例一:
查找名為“httpd.conf”的文件,并把所有標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出重定向到f i n d . d t的文件中:
# find /etc/httpd/ -name "httpd.conf" -print >find.dt 2>&1 &
[2] 7832
[1] Done find /etc/ -name "httpd.conf" -print >find.dt 2>&1 &
成功提交該命令之后,系統(tǒng)給出了它的進(jìn)程號7832。
# cat find.dt
/etc/httpd/conf/httpd.conf
[2]+ Done find /etc/httpd/ -name "httpd.conf" -print >find.dt 2>&1 &
查看find.dt,可以看到執(zhí)行結(jié)果
例二:
在后臺(tái)執(zhí)行腳本,如:有一個(gè)叫psl的腳本
$ps psl &
[7878]
用ps命令查看進(jìn)程
用提交命令時(shí)所得到的進(jìn)程號來監(jiān)控它的運(yùn)行。用p s命令和g r e p命令列出這個(gè)進(jìn)程:
# ps -x |grep 7832
7868 pts/0 S 0:00 grep 7832
如果系統(tǒng)不支持ps x命令,可以用:
# ps -ef |grep 7832
root 7866 7790 0 23:40 pts/0 00:00:00 grep 7832
在用p s命令列出進(jìn)程時(shí),它無法確定該進(jìn)程是運(yùn)行在前臺(tái)還是后臺(tái)。
殺死后臺(tái)進(jìn)程
殺死后臺(tái)進(jìn)程可以使用k i l l命令。當(dāng)一個(gè)進(jìn)程被放到后臺(tái)運(yùn)行時(shí), s h e l l會(huì)給出一個(gè)進(jìn)程號,我們可以根據(jù)這個(gè)進(jìn)程號,用k i l l命令殺死該進(jìn)程。該命令的基本形式為:
kill -signal [process_number]
現(xiàn)在暫且不要考慮其中的各種不同信號。
在殺進(jìn)程的時(shí)候,執(zhí)行下面的命令(你的進(jìn)程號可能會(huì)不同)并按回車鍵。系統(tǒng)將會(huì)給出相應(yīng)的信息告訴用戶進(jìn)程已經(jīng)被殺死。
$kill 7832
如果系統(tǒng)沒有給出任何信息,告訴你進(jìn)程已經(jīng)被殺死,那么不妨等一會(huì)兒,也許系統(tǒng)正在殺該進(jìn)程,如果還沒有回應(yīng),就再執(zhí)行另外一個(gè)k i l l命令,這次帶上一個(gè)信號選項(xiàng):
$kill - 9 7868
如果用上述方法提交了一個(gè)后臺(tái)進(jìn)程,那么在退出時(shí)該進(jìn)程將會(huì)被終止。下一講還會(huì)介紹另一個(gè)Linux后臺(tái)運(yùn)行命令n o h u p。
【編輯推薦】