2

我正在研究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.

我的问题很少

  1. linux kill 命令如何发送信号。我不明白
  2. 什么是kill -USR1从哪里来USR 的,kill 命令期望什么参数

我在想 kill 只杀死进程 id ,为什么我们要传递参数给 kill 命令

4

1 回答 1

6

kill命令有点名不副实。它向进程发送信号,默认信号SIGTERM进程终止。用于kill发送SIGUSR*信号是完全正确的。

当您对 UNIX 命令有疑问时,最好的办法是man <commandname>在命令行上输入。man kill会告诉你这一切以及更多。

尝试运行kill -l支持的信号列表。您可以按数字、符号名称和前面的符号名称指定信号SIG。您可以使用kill -10,kill -USR1kill -SIGUSR1, 都将发送相同的信号。有关更多详细信息,请参见kill手册页

于 2013-02-25T10:03:28.433 回答