ド基礎を見直そうというたぐいのもの
プロセスとシグナル
Unix/Linuxシステムではプロセスという単位でシステムが動いている。そのプロセスは外からシグナルという形で情報を受け取ることができる
シグナルの使い所
シグナルは他のプロセスから飛んでくるものであり、有る種の信号のようなものである。
シグナルの送り方
一般的にシグナルは kill
コマンドを使って送信できる
kill {{ハイフンをつけてシグナル番号、もしくはシグナルの文字列}} {{プロセスID}}
SIGINT
のシグナルを 2098 のプロセスに送りたい場合は以下
kill -INT 2098
仮にオプション表記を除くと -TERM
を指定した場合と同じ振る舞いになる。
シグナルの一覧
シグナルの一覧は kill -l
コマンドで確認ができる
$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGEMT 8) SIGFPE 9) SIGKILL 10) SIGBUS 11) SIGSEGV 12) SIGSYS 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGURG 17) SIGSTOP 18) SIGTSTP 19) SIGCONT 20) SIGCHLD 21) SIGTTIN 22) SIGTTOU 23) SIGIO 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGINFO 30) SIGUSR1 31) SIGUSR2
この数字、もしくはSIGを覗いた文字列を -
でオプション指定すると指定のコールが送られる。
振る舞いに関してはそれぞれで上書きが可能なので、一概にコレがこういう動作であるというのは言えないが基本は同じ意味で扱われる。
killコマンドでよく使われる 9)SIGKILL
は意味が変わることは少ない。
参考
- シグナルと kill コマンドについてちゃんと調べてみた ベーシック エンジニアブログ Basic::Engineer.deploy(blog)
- なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 - 達人出版会
Working With Unix Processes (English Edition)
- 作者: Jesse Storimer
- 発売日: 2011/12/20
- メディア: Kindle版
- クリック: 1回
- この商品を含むブログ (1件) を見る