在Python 腳本中處理SIGINT 中斷
使用執行多個程序和資料庫連線的Python 腳本時,收到SIGINT (Ctrl C) 中斷後會正常退出常常是可取的。在這種情況下,有必要為 SIGINT 註冊一個處理程序來執行必要的清理任務。
Perl 的 SIGINT 處理的 Python 等效項
要在 Python 中實現 Perl 的 SIGINT 處理的模擬,請利用signal.signal函數為如下:
import signal
import sys
def signal_handler(sig, frame):
print('You pressed Ctrl+C!')
sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)
print('Press Ctrl+C')
signal.pause()
說明
-
註冊Handler: signal.signal(signal.SIGINT, signal_handler) 行將signal_handler 函數分配為指定的所有行將signal_handler 函數分配為指定的所有行將signal_handler 函數分配為所有指定的SIGINT 訊號的處理程序。
-
訊號Handler: signal_handler 函數在收到 SIGINT 時觸發。在這裡,它會列印一條訊息並使用 sys.exit(0) 優雅地退出腳本。
-
列印並暫停: 註冊處理程序後,腳本提示使用者按 Ctrl C。 signal.pause() 呼叫會阻塞腳本,直到收到訊號為止。
其他資源
- [訊號模組文件](https://docs.python.org/3/library/signal.html)
以上是如何在 Python 中優雅地處理 SIGINT 中斷?的詳細內容。更多資訊請關注PHP中文網其他相關文章!