nohup:在Linux伺服器後臺跑程式
本文首發於我的個人部落格ofollow,noindex">Suixin's Blog
原文:https://suixinblog.cn/2018/11/nohup.html 作者: Suixin
一些時間長的命令經常需要在後臺執行,但苦於通常我們都是通過PC去連線伺服器,一直保持ssh
連線是不太現實的,這時就需要一些命令使得斷開ssh
連線後伺服器依舊在執行命令。
命令後面加&
在後臺執行
用法:
python test.py > test.log 2>&1 &
其中:
>
表示將標準輸出(STDOUT)重定向到test.log
檔案;
2>&1
表示將標準錯誤(STDERR)重定向到標準輸出。1
是標準輸出的檔案描述符,2
是標準錯誤的檔案描述符;
&
表示將程式放到後臺執行。
這樣,我們已經將命令放到了後臺執行。但是,只要我們斷開ssh
連線,程序將會被終止,是因為我們執行命令的session
屬於ssh
的子程序。
nohup
命令
使用nohup
即可實現斷開ssh
連線命令也不會被終止。nohup
: no hang up.
用法:
nohup python test.py > test.log 2>&1 &
執行之後可通過jobs
檢視正在執行的任務。
重新登入之後使用ps和grep命令
可檢視後臺程序,如ps aux|grep python
可檢視所有關於python
的程序。
注:以上方法適用於大部分命令,將下載和上傳的任務放到後臺也是很方便的~
參考
Linux-%E4%B8%8B%E5%90%8E%E5%8F%B0%E8%BF%90%E8%A1%8CPython%E8%84%9A%E6%9C%AC/" target="_blank" rel="nofollow,noindex">http://iyuluo.com/2017/11/01/Linux-%E4%B8%8B%E5%90%8E%E5%8F%B0%E8%BF%90%E8%A1%8CPython%E8%84%9A%E6%9C%AC/
https://www.ibm.com/developerworks/cn/linux/l-cn-nohup/