我可以从python中发出信号吗?

时间:2013-01-22 11:41:20

标签: python signals ipc

该主题基本上讲述了我想要的内容。

我阅读了文档,它告诉我如何处理信号,但不知道我如何自己做信号。

谢谢!

3 个答案:

答案 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