linux 后台運行python程序(前后台切換)


問題:

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 后台運行

  1. 后台運行 在雲服務器中搭建好jupyter並運行后, 發現它會占用當前終端, 於是研究了一下怎么讓它在后台運行.
 nohup jupyter notebook --allow-root > jupyter.log 2>&1 & 

解釋:

  1. 用&讓命令后台運行, 並把標准輸出寫入jupyter.log中
    nohup表示no hang up, 就是不掛起, 於是這個命令執行后即使終端退出, 也不會停止運行.
  2. 終止進程
    執行上面第2條命令, 可以發現關閉終端重新打開后, 用jobs找不到jupyter這個進程了, 於是要用ps -a, 可以顯示這個進程的pid.kill -9 pid 終止進程


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM