2009-07-08 9 views
5

나는 창에서 gdb 프로세스를 관리하는 파이썬 스크립트를 가지고 있고, 목표 프로세스를 정지시키기 위해 생성 된 프로세스에 SIGINT를 보낼 수 있어야한다 (gdb에 의해 관리된다)SIGINT를 파이썬의 서브 프로세스로 보내기

win32에서는 SIGTERM 만 사용할 수 있지만 콘솔과 Ctrl + C에서 gdb를 실행하면 분명히 SIGINT를받는 것으로 생각됩니다. 이 기능을 모든 플랫폼에서 사용할 수 있도록 위조 할 수있는 방법이 있습니까?

답변

1

윈도우가없는 (I는 서브 프로세스 모듈, 및 Python 2.5/2.6를 사용하고있다) 유닉스는 IPC기구 신호.

나는 CTRL-C를 gdb 프로세스로 보냈다.

+0

아래의 링크에 따르면 CTRL + C를 보낼 수 없습니까 ?? – Ryan

+0

가짜 키 시퀀스를 GDB 프로세스에 보냅니다. 매크로 프로그램과 비슷합니다. 확실히 예쁘지 않습니다. 또 다른 옵션은 신뢰할 수있는 win32 IPC 메커니즘으로 gdb 프로세스를 계측하는 것입니다. – drudru

+0

가짜 키 시퀀스가 ​​작동하지 않습니다. 키 시퀀스를 인터럽트로 처리하는 것은 GDB가 아닙니다. 쉘은 CTRL + C를 잡은 다음 gdb에 의해 집어 들고 SIGINT로 해석되는 일종의 IPC 이벤트로 바꿉니다. (비록 윈도우가 SIGINT를 가지고 있지 않더라도) " 신뢰할 수있는 win32 IPC 메커니즘을 사용하는 gdb 프로세스 "GDB 코드에서 실제로 많은 것을 의미합니까? 실제로 가서 명명 된 파이프 나 깃발이나 내가 외부에서 설정할 수있는 것을 떨어 뜨리는 것과 같습니까? 이 경우이 옵션도 없다고 가정 해 봅시다. – Ryan