该主题基本上讲述了我想要的内容。
我阅读了文档,它告诉我如何处理信号,但不知道我如何自己做信号。
谢谢!
答案 0 :(得分:12)
使用os.kill
。例如,要将SIGUSR1
发送到您自己的流程,请使用
import os,signal
os.kill(os.getpid(), signal.SIGUSR1)
答案 1 :(得分:9)
您可以使用os.kill
方法。从Python 2.7开始,它应该可以在Unix和Windows上运行(不是自己测试),尽管它需要使用不同的参数调用:
import os, signal
os.kill(pid, signal.SIGHUP) # Unix version only...
答案 2 :(得分:0)
只要在Windows上提出另一种方法,就可以:
import ctypes
ucrtbase = ctypes.CDLL('ucrtbase')
c_raise = ucrtbase['raise']
c_raise(some_signal)
'some_signal'可以是任何信号编号,例如signal.SIGINT
。