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を殺すことができますかコマンドは、シグナルを送信する方法です。理解できません
  2. 何がkill -USR1どこUSR から来たのか、キルコマンドが期待するパラメータは何ですか

kill はプロセス ID のみを殺すと考えていましたが、なぜ kill コマンドにパラメータを渡すのですか?

4

1 に答える 1

6

コマンドのkill名前が少し間違っています。プロセスにシグナルを送信します。デフォルトのシグナルSIGTERM、プロセスの終了です。kill信号の送信に使用することSIGUSR*は完全に正しいです。

man <commandname>UNIX コマンドについて質問がある場合は、コマンド ラインに入力するのが最善の策です。man killこれ以上のことをあなたに話したでしょう。

kill -lサポートされているシグナルのリストを実行してみてください。信号は、番号、記号名、および先頭に を付けた記号名で指定できますSIGkill -10kill -USR1またはを使用できますがkill -SIGUSR1、すべて同じ信号を送信します。詳細については、killマンページを参照してください。

于 2013-02-25T10:03:28.433 に答える