linux 后台運行程序


場景:程序在后台運行,即關閉終端之后仍然運行

注意,后台執行的程序一定是不結束的程序,如無限循環;

 

基礎命令

& 符號:后台執行程序,需放在命令后面

> 符號:輸出重定向到指定文件

 

方法1

python test111.py &

這樣雖然可以實現后台運行,但是在關閉終端時必須用 exit 退出,如果直接關閉窗口,則后台不運行;

這樣寫會輸出到終端,所以需要重定向輸出  python test111.py > log.log &

 

方法2

利用 shell 腳本:創建文件 xx.sh

#!/usr/bin/bash
cd /home/xxxxx/pythoncode
python -u test111.py

第一行表示此腳本的執行方式;第二行進入待執行的程序目錄;第三行執行程序;

運行命令 cmd.sh &  【注意,這種方式運行會和第一種方法一樣,輸出到終端】

也需要重定向輸出

 

運行時報錯 /bin/bash^M: bad interpreter,參考下面鏈接

 

方法3--推薦

在命令行執行 nohup command &,command 即我們需要執行的命令,如 python test.py,;不加 & 也可執行,但不是后台執行

 

ps -e 查看后台運行程序,就能看到是否運行成功

程序文件中本來輸出到終端的內容會默認輸出到 nohup.out 文件中,【經測試 print 無法輸出,raise 可輸出】

如果想輸出到指定文件,重定向

nohup python test111.py > log.log &

命令提示 是 重定向 stderr 到 stdout,可見只有 raise 可輸出

 

方法4

nuhup  xxx.sh >log.log &

 

 

 

更多內容參考:

https://www.cnblogs.com/qlshine/p/5926743.html

https://www.cnblogs.com/master-pokemon/p/5790783.html

https://cloud.tencent.com/developer/article/1398550

https://www.jianshu.com/p/4041c4e6e1b0

https://blog.csdn.net/batuwuhanpei/article/details/51504722

https://blog.csdn.net/asty9000/article/details/86506662  linux /bin/bash^M: bad interpreter的解決辦法


免責聲明!

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



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