2017-01-31 1 views
0

私はデーモン(python-daemonを使って)として走るPythonプログラム(LinuxのRaspberry Pi)を書いています。私は 'runner'コンポーネントを理解しています。will soon be deprecatedPythonでカスタム信号を受け取るにはどうすればいいですか?

このため、私はSIGUSR1SIGUSR2を使ってデーモンが信号に反応したいと思っています。

しかし、2つ以上の信号に反応することをお勧めします。

カスタム信号を作成、受信、反応するにはどうすればよいですか?SIGUSR3

「オフトピック」とみなされたので、これはsoftware engineering stackexchangeから再送信されました。

答えて

1

signalモジュールを使用してください。そのドキュメントhttps://docs.python.org/2/library/signal.htmlから、(オープンが永久にハングしないことを確認し、アラーム信号をPython IOError例外に変換する)

import signal, os 

def handler(signum, frame): 
    print 'Signal handler called with signal', signum 
    raise IOError("Couldn't open device!") 

# Set the signal handler and a 5-second alarm 
signal.signal(signal.SIGALRM, handler) 
signal.alarm(5) 

# This open() may hang indefinitely 
fd = os.open('/dev/ttyS0', os.O_RDWR) 

signal.alarm(0)   # Disable the alarm 
関連する問題