我正在後臺運行一個python腳本,使用命令python script.py &
。腳本可能看起來像這樣。很好地終止後臺python腳本
import time
def loop():
while True:
time.sleep(1)
if __name__=='__main__':
try:
loop()
except KeyboardInterrupt:
print("Terminated properly")
說到終止腳本,我想在停止之前做一些清理操作(例如打印「終止正常」)。如果我作爲當前進程運行,則在鍵盤中斷後將由except
語句處理。使用kill PID
命令意味着清理從不執行。如何停止後臺進程並在代碼終止之前執行一些代碼行?
您可以使用'kill -s 2 PID'來發送鍵盤中斷來處理'PID'。呃......如果我的記憶沒有錯誤,它應該是信號「2」。 – Sraw
'kill'發送的信號不是'KeyboardInterrupt'。默認情況下,它發送'INT(2)'你可以在這裏閱讀更多關於它的信息http://linuxcommand.org/lc3_man_pages/kill1.html – Vinny
@Vinny signal 9 is SIGKILL ... – NieDzejkob