2022/07/06 – 新增[Python] 背景執行nohup, & 與 nohup.out
主要介紹在linux下使用Terminal來背景執行python的幾種方式,
執行3隻python檔,每5秒、10秒、15秒各別顯示當前時間。
以下為python範例:
test.py、test2.py、test3.py這三隻同時使用背景來執行的畫面。
執行test.py後,會顯示跳出PID為25270。
# coding:utf-8
from datetime import datetime
from time import sleep
while(1):
count = 1
sleep(5)
print(str(count) + " : " + str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
如果想讓程式跑在背景,在結尾的地方加個&
python 背景執行指令如下:
python 程式碼名稱 &
再執行一隻test2.py,不會讓原本的test.py停住,仍在背景繼續執行,並且顯示test2.py新的PID。
# coding:utf-8
from datetime import datetime
from time import sleep
while(1):
count = 2
sleep(10)
print(str(count) + " : " + str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
再執行test3.py。
# coding:utf-8
from datetime import datetime
from time import sleep
while(1):
count = 3
sleep(15)
print(str(count) + " : " + str(datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
查詢背景運行的程式:
ps -ef
想停止某隻程式的話,輸入下方指令:
kill PID
下圖為停止第一支test.py的程式。
kill掉後原本的Terminal會出現已終止的程式名稱。
原本的test2.py和test3.py還會繼續執行。