簡單而有用的nohup命令在UNIX/LINUX中,普通進程用&符號放到后臺運行,如果啟動該程序的控制臺logout,則該進程隨即終止。
要實現守護進程,一種方法是按守護進程的規則去編程(本站有文章介紹過),比較麻煩;另一種方法是仍然用普通方法編程,然后用nohup命令啟動程序:
nohup
<程序名> &
則控制臺logout后,進程仍然繼續運行,起到守護進程的作用(雖然它不是嚴格意義上的守護進程)。
使用nohup命令后,原程序的的標準輸出被自動改向到當前目錄下的nohup.out文件,起到了log的作用,實現了完整的守護進程功能。
ygwu @ 2005年04月18日 上午10:03
For example:
如何遠程啟動WebLogic服務?
用telnet遠程控制服務器,遠程啟動WEBLOGIC服務,啟動后關閉telnet,WebLogic服務也跟著停止,這是因為使用telnet啟動的進程會隨著telnet進程的關閉而關閉。所以我們可以使用一些UNIX下的命令來做到不關閉。
使用如下命令:
nohup
startWeblogic.sh&
如果想要監控標準輸出可以使用:
tail -f nohup.out
這里有一個要主意的地方. 就是nohup 只能工作在 sh的環境下 ,csh, bash 都不行,我的freebsd 使用的 csh ,
%提示符的,不起作用,
比如先輸入sh 回車, 出現$提示符后,再用nohup command & 就可以了.