我經過膩子SSH鏈接到linux服務器。 我試圖將其做爲這樣的後臺進程運行: node
$ node server.js &
可是,在2.5小時後,終端變爲非活動狀態,該過程終止。 不管如何,即便在終端斷開鏈接的狀況下,我仍然能夠保持該過程正常進行嗎? linux
編輯1 shell
實際上,我嘗試了nohup
,可是一旦我關閉Putty SSH終端或拔出Internet插頭,服務器進程就會當即中止。 centos
在膩子裏我有什麼須要作的嗎? 服務器
編輯2(2012年2月) spa
永遠有一個node.js
模塊。 它將做爲守護程序服務運行node.js服務器。 日誌
nohup node server.js > /dev/null 2>&1 &
code
nohup
意思是: 即便終止了筆勢也不要終止此過程。 > /dev/null
表示: stdout轉到/ dev / null(這是一個不記錄任何輸出的虛擬設備)。 2>&1
表示: stderr也轉到stdout(已經重定向到/dev/null
)。 您能夠將&1替換爲文件路徑以保留錯誤日誌,例如: 2>/tmp/myLog
&
表示最後: 將此命令做爲後臺任務運行。 另外一個解決方案取消了工做 server
$ nohup node server.js & [1] 1711 $ disown -h %1
您確實應該嘗試使用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,而後按d。 作完了 您的會話一直在後臺進行。
您能夠經過screen -ls
列出全部會話,並經過screen -r 20673.pts-0.srv
命令附加到某些screen -r 20673.pts-0.srv
,其中0673.pts-0.srv是條目列表。
根據@Yoichi的回答,個人shell rc文件中具備此功能:
nohup-template () { [[ "$1" = "" ]] && echo "Example usage:\nnohup-template urxvtd" && return 0 nohup "$1" > /dev/null 2>&1 & }
您能夠經過如下方式使用它:
nohup-template "command you would execute here"
$ disown node server.js &
它將從活動任務列表中刪除命令,並將命令發送到後臺