轉自: https://www.deleak.com/blog/2010/05/19/run-software-on-background/ 有些時候,我們需要在終端啓動一個程序,並使之運行——但是如果關閉終端,那麼這個程序也就隨着關閉了。那麼有沒有什麼方法在關閉終端後,讓已經從這個終端啓動的程序繼續運行呢?
在Unix/Linux下如果想讓程序獨立終端運行,一般都是使用 & 在命令結尾來讓程序自動運行。(命令後可以不追加空格) 打開gnome-terminal,執行如下命令: delectate@delectate:~$ totem & [1] 8510 delectate@delectate:~$ 有幾點需要注意:
nohup描述:Run COMMAND, ignoring hangup signals.(忽略任何中斷/掛起信號,使命令繼續執行) 但是當你嘗試使用命令:
時候卻會遇到不大不小的麻煩…… delectate@delectate:~$ nohup vlc nohup: ignoring input and appending output to `nohup.out' 是的,雖然它自動把debug信息記錄到nohup.out文件,但是你卻無法使用這個終端進行任何操作。 所以你需要和第一個方法混用,即 nohup command {option} & 混用後,它會自動把你執行的命令輸出結果記錄到權限爲-rw——-,名爲nohup.out的文件中。 但是你仍然需要 delectate@delectate:~$ nohup vlc & [1] 9045 delectate@delectate:~$ nohup: ignoring input and appending output to `nohup.out' //在這裏按一下回車或以ctrl+c以 //show a clean terminal delectate@delectate:~$ 與使用 “&” 性質相同,當前啓動程序的終端如果沒有被關閉,已經啓動的程序附在pst上;如果終端被關閉,則自動附在tty。 如果當前目錄的 nohup.out 文件不可寫,輸出重定向到 $HOME/nohup.out。默認狀態下,nohup默認輸出到nohup.out文件,你也可以利用重定向來指定輸出文件: nohup command {option} > myout.file 2>&1 & 只有當虛擬終端是 $ 或者 # 時候,纔可以關閉此終端,否則可能導致已經啓動的進程被關閉(按enter——如果程序持續輸出信息而沒有出現 $ 或 #)
jobs:查看當前有多少在後臺運行的命令
殺死已經啓動的程序和普通方式一樣: pkill -9 namekillall namekill pid…
linux服務器掛機下載;啓動相關服務;linux服務器啓動進程(尤其是ssh登錄) 我就曾經用
|
小技巧:讓linux程序在後臺運行
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.