シグナルを受ける方法 †killコマンドやCtrl+Cによるシグナルを受ける方法を記します。 シグナル †以下に記すシグナルを対象にスクリプトを記述してみます。
シグナルの一覧を確認したい場合は、逆引きUNIXコマンド/killコマンドのシグナル名称と値を知りたいを参照してください。 サンプル †#!/bin/bash trap "echo SIGNAL HUP; exit 1" 1 trap "echo SIGNAL INT; exit 1" 2 trap "echo SIGNAL QUIT; exit 1" 3 trap "echo SIGNAL TERM; exit 1" 15 while : do sleep 1 done 他の端末よりkillコマンドにてプロセスを強制終了(TERM)させてみた結果です。
複数シグナルの指定 †以下のように複数のシグナルを指定することもできます。 trap "echo SIGNAL; exit 1" 1 2 3 15 シグナルを受けたあと終了処理をしたい場合 †シグナルを受けた後、後処理をしたい場合は、以下のようにfunctionをつくればよいでしょう。 #!/bin/bash trap "HUP; exit 1" 1 trap "INT; exit 1" 2 trap "QUIT; exit 1" 3 trap "TERM; exit 1" 15 function HUP { echo "function HUP" } function INT { echo "function INT" } function QUIT { echo "function QUIT" } function TERM { echo "function TERM" } while : do sleep 1 done |