centos7將程序設置為后台運行並說明如何結束后台項目


一.將程序設置為后台運行

  1.&

    運行程序時在后邊加上&可以使自己重新掌握控制台,但如果程序有輸出的內容,則不能達到我們本來想要的結果.如:

[root@localhost HomeCode]# python SaveArticel.py &
[1] 17865
[root@localhost HomeCode]# 2020-03-14 16:57:20 [INFO] [/opt/Project/ApiDS/HomeCode/Config.set_log] SaveArticel.py[line:39] [MainThread] 即將更新 2020-03-14 的數據
2020-03-14 16:57:25 [INFO] [/opt/Project/ApiDS/HomeCode/Config.set_log] DatabaseCode.py[line:52] [ThreadPoolExecutor-0_6] 價格 32292 2020-03-14已存在

    程序運行后,輸出的內容依然會顯示在控制台上,而且發現Ctrl+C並不能停止它的運行.

  2.nohup  command  &

    nohup可以使程序進入后台運行模式,並發現在運行文件同級目錄下會生成一個nohup.out文件,里邊會記錄所有程序運行時返回的內容,所以要注意如果涉及到用戶交互的項目則不適合使用nohup.如:

[root@localhost HomeCode]# nohup python SaveArticel.py &
[1] 18451
[root@localhost HomeCode]# nohup: ignoring input and appending output to ‘nohup.out’

    可以看到在執行了python程序后,並沒有顯示項目返回的內容,我們看一下nohup.out中的內容:

[root@localhost HomeCode]# cat nohup.out 
2020-03-14 16:51:37 [INFO] [/opt/Project/ApiDS/HomeCode/Config.set_log] SaveArticel.py[line:39] [MainThread] 即將更新 2020-03-14 的數據
2020-03-14 16:51:42 [INFO] [/opt/Project/ApiDS/HomeCode/Config.set_log] DatabaseCode.py[line:52] [ThreadPoolExecutor-0_26] 價格 35665 2020-03-14已存在

    剛好是1中控制台顯示的內容.

二.殺死后台程序

  1.通過jobs -l查看后台項目進程

[root@localhost HomeCode]# jobs -l
[1]+ 19280 Running                 nohup python SaveArticel.py &

    可以看到python項目的狀態是Running, 進程為19280

  2.通過kill -9 Process殺死進程

[root@localhost HomeCode]# kill -9 19280
[root@localhost HomeCode]# jobs -l
[1]+ 19280 Killed                  nohup python3 SaveArticel.py

    執行完kill命令后再通過jobs查看,可以看到狀態變為Killed.

 


免責聲明!

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



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