プログラム
Python 3で動作確認してます。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import signal | |
import time | |
def sigint_handler(num, frame): | |
print("received SIGINT!") | |
def sigtstp_handler(num, frame): | |
print("received SIGTSTP!") | |
def sigterm_handler(num, frame): | |
print("received SIGTERM!") | |
def work(): | |
while True: | |
time.sleep(1) | |
print("this is a signal handler sample!") | |
def main(): | |
signal.signal(signal.SIGINT, sigint_handler) | |
signal.signal(signal.SIGTSTP, sigtstp_handler) | |
signal.signal(signal.SIGTERM, sigterm_handler) | |
work() | |
if __name__ == '__main__': | |
main() |
遊び方
まず上記のPythonプログラムを起動します。$ python sample.py
プログラムを起動したら以下の表を参考にシグナルを送ってみてください。
シグナル | キーボードから | コマンドラインから |
SIGINT | ctrl + c | kill -INT プロセス番号 |
SIGTSTP | ctrl + z | kill -TSTP プロセス番号 |
SIGTERM | - | kill プロセス番号 |
SIGKILL | - | kill -KILL プロセス番号 |
プログラムを停止したい場合は、SIGKILLを送ってください。
プログラムのプロセス番号は以下のコマンドで調べることができます。
$ pgrep -f "python sample.py"
0 件のコメント:
コメントを投稿