オルタナティブ・ブログ > 吉政忠志のベンチャービジネス千里眼 >

IT業界でベンチャービジネスの支援をしている執筆者が日々の活動ログと感じたことを、徒然なるままに書き綴っていきます。

WSLで始めるUbuntu > 第30回 シグナルについて知ろう

»

私が編集支援しているCTC教育サービスのコラム「WSLで始めるUbuntu > 第30回 シグナルについて知ろう」が公開されました。興味がある方はご覧ください。

###

前回は環境変数と終了コードについて説明しました。今回は、シグナルについて説明します。

シグナル
シグナルとは、Linuxを含むUNIXライクOSで使用される、プロセスへ数値(シグナル値)を渡します。プロセスはシグナルハンドラによってシグナル値を受け取ることにより、その挙動を変えることが出来ます。シグナルを送るにはkill コマンドを使用してkill PID(プロセスID)のように実行します。killコマンドは、デフォルトでシグナルSIGINTを渡します。kill コマンドに -シグナル名もしくは-値を与えると、任意のシグナルをプロセスへ送信可能です。bashが扱うシグナルには、以下のような名称/値があります。

シグナル 値 説明
SIGHUP 1 端末のハングアップ検出、もしくは制御しているプロセスの死亡
SIGINT 2 キーボードからの割り込み
SIGQUIT 3 キーボードによる中止
SIGILL 4 不正な命令
SIGTRAP 5 何らかのデバッグ機能で使用される
SIGABRT 6 関数 abort() からの中断 (Abort) シグナル
SIGFPE 8 浮動小数点例外
SIGKILL 9 Kill シグナル
SIGSEGV 11 不正なメモリー参照
SIGPIPE 13 パイプ破壊、読込み先の無いパイプへの書出し
SIGALRM 14 関数 alarm() からのタイマーシグナル
SIGTERM 15 強制終了 (termination) シグナル
SIGTTIN 21 バックグラウンドプロセスが端末から読もうとした
SIGTTOU 22 バックグラウンドプロセスが端末に書き込もうとした
SIGUSR1 30,10,16 ユーザー定義シグナル 1
SIGUSR2 31,12,17 ユーザー定義シグナル 2
SIGCHLD 19,18,25 子プロセスの一時停止 (stop) または終了

bashにおけるシグナルの動作は、ジョブコントロールが有効/無効時で動作が異なります。ジョブコントロールとは、実行するプロセスをサスペンド/レジュームする機能のことです。ジョブコントロールの詳細については、次回説明します。

この続きは以下をご覧ください
https://www.school.ctc-g.co.jp/columns/miyazaki/miyazaki30.html

Comment(0)