我在“syslogngfevd”中运行的嵌入式Python似乎没有接收信号,这是真的吗?

2024-09-21 03:22:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我在“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,蟋蟀。你知道吗


Tags: of命令行程序signal信号defngcontrol
1条回答
网友
1楼 · 发布于 2024-09-21 03:22:33

你在Python代码中犯了一个错误。必须导入信号模块才能注册函数。你知道吗

但是,修复代码并不能解决问题。如果在Python中注册处理程序,那么信号似乎既不会转发给Python,也不会转发给syslog ng的信号处理程序。你知道吗

相关问题 更多 >

    热门问题