簡體   English   中英

如何使python守護程序處理systemd信號?

[英]How can I make a python daemon handle systemd signals?

因此,從本質上講,我有一個作為systemd服務運行的python腳本。 當我告訴它停止時,其中的睡眠時間長於systemd timout,並且systemd在運行最后一行代碼之前將其殺死。 之前的代碼是while循環,該循環每15秒重復一次。 我如何做到這一點,以便在systemd向其發送信號時腳本打破循環?

使用signal.signal注冊您的處理程序,如下所示:

#!/usr/bin/env python
import signal
import sys

isKilled = False

def signal_handler(signal, frame):
    global isKilled
    isKilled = True

signal.signal(signal.SIGINT, signal_handler)
signal.pause()

然后,您可以測試isKilled以查看程序是否已發送isKilled請求。

注意:您可能必須更改SIGINT的值以匹配systemd正在發送的命令。 這將取決於您的用例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM