逆引きシェルスクリプト/シグナルを受ける方法
の編集
Top
/
逆引きシェルスクリプト
/
シグナルを受ける方法
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
#navi(../) * シグナルを受ける方法 [#fe0bf949] killコマンドやCtrl+Cによるシグナルを受ける方法を記します。 #br #htmlinsertpcsp(linux_ads_top.html,linux-sp.html) ** シグナル [#b58bb07d] 以下に記すシグナルを対象にスクリプトを記述してみます。 |ハングアップ|HUP|1| |割り込み(CTRL+C)|INT|2| |終了|QUIT|3| |強制終了|TERM|15| シグナルの一覧を確認したい場合は、[[逆引きUNIXコマンド/killコマンドのシグナル名称と値を知りたい]]を参照してください。 ** サンプル [#n68f1f99] #ref(signal-1.sh) #!/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)させてみた結果です。~ 下記の通り、SIGNAL TERMが表示されています。 + 本シェルスクリプト起動 #ref(term-01.gif) #br + 別の端末よりkillを発行 #ref(term-02.gif) #br + トラップで記述した部分が動作する #ref(term-03.gif) #br ** 複数シグナルの指定 [#m06e2471] 以下のように複数のシグナルを指定することもできます。 trap "echo SIGNAL; exit 1" 1 2 3 15 ** シグナルを受けたあと終了処理をしたい場合 [#j7ed96bd] シグナルを受けた後、後処理をしたい場合は、以下のようにfunctionをつくればよいでしょう。 #ref(signal-2.sh) #!/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 #br #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html) #br
タイムスタンプを変更しない
#navi(../) * シグナルを受ける方法 [#fe0bf949] killコマンドやCtrl+Cによるシグナルを受ける方法を記します。 #br #htmlinsertpcsp(linux_ads_top.html,linux-sp.html) ** シグナル [#b58bb07d] 以下に記すシグナルを対象にスクリプトを記述してみます。 |ハングアップ|HUP|1| |割り込み(CTRL+C)|INT|2| |終了|QUIT|3| |強制終了|TERM|15| シグナルの一覧を確認したい場合は、[[逆引きUNIXコマンド/killコマンドのシグナル名称と値を知りたい]]を参照してください。 ** サンプル [#n68f1f99] #ref(signal-1.sh) #!/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)させてみた結果です。~ 下記の通り、SIGNAL TERMが表示されています。 + 本シェルスクリプト起動 #ref(term-01.gif) #br + 別の端末よりkillを発行 #ref(term-02.gif) #br + トラップで記述した部分が動作する #ref(term-03.gif) #br ** 複数シグナルの指定 [#m06e2471] 以下のように複数のシグナルを指定することもできます。 trap "echo SIGNAL; exit 1" 1 2 3 15 ** シグナルを受けたあと終了処理をしたい場合 [#j7ed96bd] シグナルを受けた後、後処理をしたい場合は、以下のようにfunctionをつくればよいでしょう。 #ref(signal-2.sh) #!/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 #br #htmlinsertpcsp(linux_ads_btm.html,linux-sp.html) #br
テキスト整形のルールを表示する
添付ファイル:
signal-1.sh
488件
[
詳細
]
term-02.gif
550件
[
詳細
]
term-03.gif
560件
[
詳細
]
signal-2.sh
480件
[
詳細
]
term-01.gif
552件
[
詳細
]