我正在研究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.
我几乎没有问题
kill -USR1
来自USR
来自哪里,什么参数是kill命令期待我认为kill只会杀死进程id,为什么我们将参数传递给kill命令
答案 0 :(得分:6)
kill
命令有点错误。它向进程发送信号,默认信号为SIGTERM
,进程终止。使用kill
发送SIGUSR*
信号非常正确。
当您对UNIX命令有疑问时,最好的办法是在命令行输入man <commandname>
。 man kill
会告诉你所有这些以及更多。
尝试运行kill -l
以获取支持的信号列表。您可以按编号,符号名称和SIG
前面的符号名称指定信号。您可以使用kill -10
,kill -USR1
或kill -SIGUSR1
,所有人都会发送相同的信号。有关详细信息,请参阅kill
manpage。