2017-02-15 3 views
0

"syslog-ng -Fevd"OSE 버전 3.8에서 실행되는 Python 프로그램이 있으므로 명령 줄에서 빠르게 개발할 수 있습니다. 내 신호 처리기는 명령 줄에서 실행될 때 control-C를 잡아 내고 (다른 신호도 가정 함) syslog-ng 내부에서는 그렇지 않습니다. 시그널은 syslog-ng에서 파이썬으로 전달되는 것으로 알려져 있습니까? 파이썬을 처음 접했을 때 실수를 했습니까?"syslog-ng -Fevd"내부에서 실행중인 내 임베디드 Python이 신호를 수신하지 않는 것으로 보입니까?

또한 PyCharm (정지 버튼) 나

가 신호 2 종료 불려

신호 처리기

요청하지만 시스템 로그 - NG에서 얻을 내부에서 명령 라인 (제어-C)로부터

#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 

, 귀뚜라미.

답변

0

실수로 파이썬 코드를 작성했습니다. 함수를 등록하려면 신호 모듈을 가져와야합니다.

그러나 코드를 수정해도 문제가 해결되지 않습니다. 파이썬에서 핸들러를 등록하면 신호가 파이썬이나 syslog-ng의 신호 처리기로 전달되지 않는 것 같습니다.

관련 문제