该主题基本上告诉我想要什么。
我阅读了文档,它告诉我如何处理信号,但没有告诉我如何自己做信号。
谢谢!
使用os.kill
. 例如,要发送SIGUSR1
到您自己的进程,请使用
import os,signal
os.kill(os.getpid(), signal.SIGUSR1)
您可以使用该os.kill
方法。从 Python 2.7 开始,它应该可以在 Unix 和 Windows 上工作(我自己没有测试过),尽管它需要使用不同的参数来调用:
import os, signal
os.kill(pid, signal.SIGHUP) # Unix version only...
直接使用signal
包(版本 3.8 中的新功能)。例如:
import signal
signal.raise_signal( signal.SIGINT )
参考:https ://docs.python.org/3/library/signal.html#signal.raise_signal
只是提出一种不同的方法,如果它在 Windows 上:
import ctypes
ucrtbase = ctypes.CDLL('ucrtbase')
c_raise = ucrtbase['raise']
c_raise(some_signal)
'some_signal' 可以是任何信号编号,例如signal.SIGINT
.