我正在研究 python 中的信号主题并遇到了这个例子
import signal
import os
import time
def receive_signal(signum, stack):
print 'Received:', signum
signal.signal(signal.SIGUSR1, receive_signal)
signal.signal(signal.SIGUSR2, receive_signal)
print 'My PID is:', os.getpid()
while True:
print 'Waiting...'
time.sleep(3)
现在他正在用这个发送信号
I ran signal_signal.py in one window, then kill -USR1 $pid, kill -USR2 $pid, and kill -INT $pid in another.
我有几个问题
- linux kill 命令怎么可能是发送信号的方式。我不明白
kill -USR1
是什么USR
来自哪里,kill 命令期望的参数是什么
我在想 kill 只会杀死进程 id,为什么我们要将参数传递给 kill 命令用于
最佳答案
kill
命令有点命名错误。它向进程发送信号,默认信号是SIGTERM
, 进程终止。使用 kill
用于发送 SIGUSR*
信号是完全正确的。
当您对 UNIX 命令有疑问时,最好的办法是输入 man <commandname>
在命令行上。 man kill
会告诉你这一切以及更多。
尝试运行 kill -l
获取支持的信号列表。您可以按数字、符号名称和前缀为 SIG
的符号名称指定信号.您可以使用 kill -10
, kill -USR1
或 kill -SIGUSR1
,所有人都会发送相同的信号。查看 kill
manpage了解更多详情。
关于python - 关于带有 os 模块的 python 中的信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15064326/