後台執行命令 和nohup

2021-09-01 22:56:42 字數 3023 閱讀 3348

當 我們在終端或控制台工作時,可能不希望由於執行乙個作業而佔住了螢幕,因為可能還有更重要的事情要做,比如閱讀電子郵件。對於密集訪問磁碟的程序,你可能 希望它能夠在每天的非負荷高峰時間段執行。為了使這些程序能夠在後台執行,也就是說不在終端螢幕上執行,有幾種選擇方法可供使用。

•設定crontab

檔案,並用它來提交作業。

•使用a t

命令來提交作業。

•在後台提交作業。

•使用nohup

命令提交作業。

名詞解釋:

1、cron

,系統排程程序,可以使用它在每天的非高峰負荷時間段執行作業,或在一周或一月中的不同時段執行。

2、at命令,使用它在乙個特定的時間執行一些特殊的作業,或在晚一些的非負荷高峰時間段或高峰負荷時間段執行。

3、&,使用它在後台執行乙個占用時間不長的程序。

4、nohup

使用它在後台執行乙個命令,即使在使用者退出時也不受影響。

&命令

當在前台執行某個作業時,終端被該作業佔據;而在後台執行作業時,它不會佔據終端。

可以使用

&命令把作業放到後台執行。

該命令的一般形式為:命令&。

為什麼要在後台執行命令?因為當在後台執行命令時,可以繼續使用你的終端做其他事情。適合在後台執行的命令有

f i n d

、費時的列印作業、費時的排序及一些

s h e l l

指令碼。在後台執行作業時要當心:需要使用者互動的命令不要放在後台執行,因為這樣你的機器就會在那裡傻等。不過,作業在後台執行一樣會將結果輸出到螢幕上,干擾你的工作。如果放在後台執行的作業會產生大量的輸出,最好使用下面的方法把它的輸出重定向到某個檔案中:

command  >  out.file  2>&1  &

在上面的例子中,所有的標準輸出和錯誤輸出都將被重定向到乙個叫做

out.file

的檔案中。當你成功地提交程序以後,就會顯示出乙個程序號,可以用它來監控該程序,或殺死它。

向後台提交命令:

現在我們執行乙個

find

命令,查詢名為「

srm.conf

」的檔案,並把所有標準輸出和錯誤輸出重定向到乙個叫

find.dt

的檔案中:

find srm.conf > find.dt 2>&1 &

在上面的例子中,在我們成功提交該命令之後,系統給出了它的程序號

27015

。當該作業完成時,按任意鍵(一般是回車鍵)就會出現乙個提示。

ps

命令檢視程序

當乙個命令在後台執行的時候,可以用提交命令時所得到的程序號來監控它的執行。在前面的例子中,我們可以按照提交

ps1時得到的程序號,用

p s命令和

g r e p

命令列出這個程序:

ps –ef | grep ps1

,記住,在用

p s命令列出程序時,它無法確定該程序是執行在前台還是後台。

殺死後台程序

如果想殺死後台程序可以使用

kill

命令。當乙個程序被放到後台執行時,

shell

會給出乙個程序號,我們可以根據這個程序號,用

k i l l

命令殺死該程序。該命令的基本形式為:

kill -signal [process_number]

;現在暫且不要考慮其中的各種不同訊號;在殺程序的時候,執行下面的命令

(你的程序號可能會不同)「

kill  29563」

並按回車鍵。系統將會給出相

應的資訊告訴使用者程序已經被殺死。

如果系統沒有給出任何資訊,告訴你程序已經被殺死,那麼不妨等一會兒,也許系統正在殺該程序,如果還沒有回應,就再執行另外乙個

k i l l

15如果用上述方法提交了乙個後台程序,那麼在退出時該程序將會被終止。為了使後台程序能夠在退出後繼續執行,可以使用

nohup

命令,下面我們就介紹這一命令。

nohup命令

如果你正在執行乙個程序,而且你覺得在退出帳戶時該程序還不會結束,那麼可以使用

nohup

命令,該命令可以在你退出帳戶之後繼續執行相應的程序。

nohup

就是不掛起的意思

( no hang up)

。該命令的一般形式為:nohup command &

使用

nohup

命令提交作業

如果使用

nohup

命令提交作業,那麼在預設情況下該作業的所有輸出都被重定向到乙個名為

nohup.out

的檔案中,除非另外指定了輸出檔案:nohup command > myout.file 2>&1

一次提交幾個作業

如果希望一次提交幾個命令,最好能夠把它們寫入到乙個

shell

指令碼檔案中,並用

nohup

命令來執行它。

小結

本 文中所討論的工具主要是有關後台執行作業的。有時我們必須要對大檔案進行大量更改,或執行一些複雜的查詢,這些工作最好能夠在系統負荷較低時執行。建立一 個定時清理日誌檔案或完成其他特殊工作的指令碼,這樣只要提交一次,就可以每天晚上執行,而且無需你干預,只要看看相應的指令碼日誌就可以了。

crond

和其他工具可以使系統管理任務變得更輕鬆。

linux後台執行命令 和nohup

當我們在終端或控制台工作時,可能不希望由於執行乙個作業而佔住了螢幕,因為可能還有更重要的事情要做,比如閱讀電子郵件。對於密集訪問磁碟的程序,我們更希望它能夠在每天的非負荷高峰時間段執行 例如凌晨 為了使這些程序能夠在後台執行,也就是說不在終端螢幕上執行,有幾種選擇方法可供使用。nohup start...

linux後台執行命令 和nohup

command out.file 2 1 nohup command nohup command myout.file 2 1 ctrl c 終止前台命令。jobs 檢視當前有多少在後台執行的命令。jobs l選項可顯示所有任務的pid,jobs的狀態可以是running,stopped,termi...

linux後台執行命令 和nohup

nohup no hang up 命令 用途 不結束通話地執行命令。語法 nohup command arg 例子 nohup sh example.sh 描述 nohup 命令執行由 command 引數和任何相關的 arg 引數指定的命令,忽略所有結束通話 sighup 訊號。在登出後使用 no...