問題:
1.linux運行python腳本遇到個問題,關閉遠程腳本會自動斷開
2.程序運行會一直輸出,能否實現最小化,后台運行
解決方案
nohup python -u 腳本名.py > test.log 2>&1 &
nohup python test.py & 在后台運行test.py
jobs 查看后台運行的進程
fg %n 讓后台進程n轉到前台
bg %n 讓暫停運行的后台進程n繼續運行
kill %n 殺死job
ctrl+z 使前台正在運行的進程轉到后台
ctrl+c 終止前台進程
nohup表示no hang up, 就是不掛起, 於是這個命令執行后即使終端退出, 也不會停止運行.
具體用法
nohup python -u test.py > test.log 2>&1 &
2 輸出錯誤信息到提示符窗口
1 表示輸出信息到提示符窗口, 1前面的&注意添加, 否則還會創建一個名為1的文件
最后會把日志文件輸出到test.log文件
其中-u 的作用是無緩存輸出,即每有一行輸出都直接寫到test.log里面
在運行過程中使用一下命令可以查看輸出
tail -f test.log # 實時輸出
cat test.log # 全部輸出
jupyter 后台運行
- 后台運行 在雲服務器中搭建好jupyter並運行后, 發現它會占用當前終端, 於是研究了一下怎么讓它在后台運行.
nohup jupyter notebook --allow-root > jupyter.log 2>&1 &
解釋:
- 用&讓命令后台運行, 並把標准輸出寫入jupyter.log中
nohup表示no hang up, 就是不掛起, 於是這個命令執行后即使終端退出, 也不會停止運行. - 終止進程
執行上面第2條命令, 可以發現關閉終端重新打開后, 用jobs找不到jupyter這個進程了, 於是要用ps -a, 可以顯示這個進程的pid.kill -9 pid 終止進程