一.將程序設置為后台運行
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.