Linux シェル,シグナル受信時にシグナルを無視する方法

スポンサーリンク

鍛錬 93

Linux シェルスクリプト,シグナル受信時にシグナルを無視する方法

シグナルを受信した際にシグナルを無視するには、trap を使用します。

関連記事:Linux,シグナルの一覧を表示(取得)する
関連記事:Linux シェル,シグナル受信時にコマンドを実行する方法
 
使用方法は、以下に示す通りです。

(” は、ダブルクォーテーションではなく、シングルクォーテーションを 2 つ記述しています。)

trap ” シグナル番号
スポンサーリンク

シェルスクリプト

以下は、Ctrl+c を押下した際に発信される シグナル2(SIGINT) を受信した場合に、シグナルを無視して続行するシェルスクリプト、ignore_signal.sh です。

#!/bin/sh

trap '' 2

while true
do
	echo "..."
	sleep 1s
done
スポンサーリンク

実行結果

以下は、シェルスクリプト ignore_signal.sh を実行しています。

***@ubuntu:~/***/test/shell$ 
***@ubuntu:~/***/test/shell$ ./ignore_signal.sh
...
...
...
^C...
...
...
^C^C...
^C^C...
^C...
^C^C^C...
...
...
...
^C^C^C^C^C...
...
...
...
^Z
[3]+  停止                  ./ignore_signal.sh

 
上記に示した通り、Ctrl+c を押下して発生させたシグナル(SIGINT)をキャッチしても、処理を停止せずに無視していることが分かります。

タイトルとURLをコピーしました