background-process - 如何在後台運行進程,永遠不會死?

  显示原文与译文双语对照的内容
0 0

我通過 Putty SSH連接到linux伺服器。 我試圖將它作為後台進程運行,如下所示:


$ node server.js &

但是,在 2.5小時后,終端變為不活動,進程死亡。 是在那了,我可以使該過程保持為活動狀態,即使終端斷開連接?

謝謝。


幫助,請 !

實際上,我嘗試了 nohup,但一旦我關閉 Putty SSH終端或者拔掉我的互聯網,伺服器進程就會立即停止。

我在 Putty 中需要做什麼?


在 2012 feb, update: 有一個 node.js 模塊,永遠是。 它將nodejs伺服器作為守護進程運行。

很好。

时间: 原作者:

0 0

簡單解決方案 ( 如果你對返回進程不感興趣,只希望它繼續運行):


nohup node server.js &

強大的解決方案 。( 允許你重新連接到進程,如果它是互動式的):

 
screen

 

還要考慮屏幕的新替代,即 tmux 。

原作者:
0 0

nohup node server.js>/dev/null 2>&1 &

  1. nohup的意思是:即使被切斷,也不會終止這個進程。
  2. >/dev/null的意思是:的標準輸出到/dev/null ( 它是一個不記錄任何輸出的虛擬設備) 。
  3. 2>&1的意思是:的stderr也進入了 stdout ( 已經被重定向到 /dev/null ) 。
  4. & 結尾意味著: 作為後台任務運行這裡命令。
原作者:
0 0

你真的應該嘗試使用 screen 。 這比做 nohup long_running & 要複雜一點,但一旦你不再回來,你就會理解屏幕。

開始你的屏幕會話:

 
user@host:~$ screen

 

運行任何你想要的:


wget http://mirror.yandex.ru/centos/4.6/isos/i386/CentOS-4.6-i386-binDVD.iso

按ctrl+A然後按。 完成。你的會話正在後台進行。

你可以通過 screen -ls 列出所有會話,並通過 screen -r 20673.pts-0.srv 命令附加到某些會話。其中 0673 。pts-0.srv是一個條目列表。

0 0

nohup 將允許程序在終端終止後繼續運行。 實際上,我有 nohup 阻止SSH會話正確終止的情況,所以你也應該重定向輸入:


$ nohup node server.js </dev/null &

根據 nohup的配置方式,你可能還需要將標準輸出和標準錯誤重定向到文件。

0 0

我的shell rc文件中有這個函數,基於 @Yoichi's 答案:


nohup-template () {
 [["$1" ="" ]] && echo"Example usage:nnohup-template urxvtd" && return 0
 nohup"$1">/dev/null 2>&1 &
}

你可以用此方式使用:


nohup-template"command you would execute here"

原作者:
...