Python中使用signal捕獲關(guān)閉信號

Python 捕獲信號示例

通常用于循環(huán)執(zhí)行的服務(wù)中。直接插入以下代碼

import signal
def shutdownFunction(signalnum, frame):
    pass
for sig in [signal.SIGINT, signal.SIGHUP, signal.SIGTERM, signal.SIGKILL]:
    signal.signal(sig, shutdownFunction)

具體的 signal 使用參見這篇文章。
對于*nix系統(tǒng),主要捕獲這下面的退出信號即可:

[
signal.SIGINT, # 鍵盤中 Ctrl-C 組合鍵信號
signal.SIGHUP, # nohup 守護進程發(fā)出的關(guān)閉信號
signal.SIGTERM, # 命令行數(shù)據(jù) kill pid 時的信號
]

Linux 部分終止信號說明

  • 信號 值 處理動作 發(fā)出信號的原因
SIGHUP 1 A 終端掛起或者控制進程終止 
SIGINT 2 A 鍵盤中斷(如break鍵被按下) 
SIGQUIT 3 C 鍵盤的退出鍵被按下 
SIGILL 4 C 非法指令 
SIGABRT 6 C 由abort(3)發(fā)出的退出指令 
SIGFPE 8 C 浮點異常 
SIGKILL 9 AEF Kill信號 
SIGSEGV 11 C 無效的內(nèi)存引用 
SIGPIPE 13 A 管道破裂: 寫一個沒有讀端口的管道 
SIGALRM 14 A 由alarm(2)發(fā)出的信號 
SIGTERM 15 A 終止信號 
SIGUSR1 30,10,16 A 用戶自定義信號1 
SIGUSR2 31,12,17 A 用戶自定義信號2 
SIGCHLD 20,17,18 B 子進程結(jié)束信號 
SIGCONT 19,18,25 進程繼續(xù)(曾被停止的進程) 
SIGSTOP 17,19,23 DEF 終止進程 
SIGTSTP 18,20,24 D 控制終端(tty)上按下停止鍵 
SIGTTIN 21,21,26 D 后臺進程企圖從控制終端讀 
SIGTTOU 22,22,27 D 后臺進程企圖從控制終端寫
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容