python - 关于带有 os 模块的 python 中的信号

标签 python

我正在研究 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 命令用于

最佳答案

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

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

尝试运行 kill -l获取支持的信号列表。您可以按数字、符号名称和前缀为 SIG 的符号名称指定信号.您可以使用 kill -10 , kill -USR1kill -SIGUSR1 ,所有人都会发送相同的信号。查看 kill manpage了解更多详情。

关于python - 关于带有 os 模块的 python 中的信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15064326/

相关文章:

python - 从 pandas.HDFStore 中选择给出了不同的答案

python - 为什么这个 Python 代码在 Ubuntu 上会出现段错误,但在 Windows 上却没有?

python - 在 matplotlib 的条形图中设置不同的误差线颜色

python - 是否可以只修改和运行 Python 程序的一部分,而不必一次又一次地运行所有程序?

python - 如何限制堆大小?

python re,多个匹配组

python - Django 管理 "Preview PDF"按钮

python - "Comma Code"来自用 Python 自动化无聊的东西的程序

python - Pandas:更高效的索引转储?

python - 为什么 re.sub 替换整个模式,而不仅仅是其中的一个捕获组?