我在“syslog ng-Fevd”OSE版本3.8中运行了一个Python程序,因此可以从命令行快速开发。当从命令行运行时,我的信号处理程序捕捉control-C(我假设还有其他信号),但在syslogng内部时捕捉不到。是否已知在syslog ng中传播到Python的信号?我是Python新手,我犯了错误吗?你知道吗
#Start of syslog-ng python config
python {
def handler(signum, frame):
print 'Signal handler called with signal', signum
stopSubscription()
signal.signal(signal.SIGALRM, handler)
signal.signal(signal.SIGINT, handler)
signal.signal(signal.SIGABRT, handler)
signal.signal(signal.SIGHUP, handler)
signal.signal(signal.SIGTERM, handler)
signal.signal(signal.SIGBUS, handler)
signal.signal(signal.SIGCHLD, handler)
signal.signal(signal.SIGCLD, handler)
def stopSubscription():
print "shutdown requested"
}; # end of syslog-ng block
从命令行(control-C)和PyCharm内部(stop按钮)我得到
用信号2调用的信号处理程序 请求关机
但是来自syslog ng,蟋蟀。你知道吗
你在Python代码中犯了一个错误。必须导入信号模块才能注册函数。你知道吗
但是,修复代码并不能解决问题。如果在Python中注册处理程序,那么信号似乎既不会转发给Python,也不会转发给syslog ng的信号处理程序。你知道吗
相关问题 更多 >
编程相关推荐