facebook twitter hatena line email

「Linux/コマンドメモ/trap」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「==trapとは== 割り込み時に予め実行されるコマンドを記述できるコマンド ==サンプル== sample.sh #!/bin/bash LOCKFILE=/home/user1/dummy.lock...」)
 
(サンプル)
 
(同じ利用者による、間の2版が非表示)
行9: 行9:
 
  trap 'echo trapped.; rm -f /home/user1/dummy.lock; exit 1' 0 1 2 3 15
 
  trap 'echo trapped.; rm -f /home/user1/dummy.lock; exit 1' 0 1 2 3 15
 
  sleep 120;
 
  sleep 120;
 +
 +
0シグナルは普通の終了時
  
 
==シグナル一覧==
 
==シグナル一覧==
行25: 行27:
 
  58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
 
  58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
  
==9は動かない?==
+
==9は動かない==
実際に9をしていして(kill -9 sample.sh)を実行したが trapが実行されなかった。ほかは動いた。
+
実際に9の強制終了を指定して(kill -9 sample.sh)を実行したが 実際に試したらtrapが実行されなかった。
 +
強制終了はtrapすらも強制終了するので実行されない様子。
 +
参考:http://shellscript.sunone.me/signal_and_trap.html

2017年4月27日 (木) 11:24時点における最新版

trapとは

割り込み時に予め実行されるコマンドを記述できるコマンド

サンプル

sample.sh

#!/bin/bash
LOCKFILE=/home/user1/dummy.lock
touch $LOCKFILE
trap 'echo trapped.; rm -f /home/user1/dummy.lock; exit 1' 0 1 2 3 15
sleep 120;

0シグナルは普通の終了時

シグナル一覧

$ trap -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2

9は動かない

実際に9の強制終了を指定して(kill -9 sample.sh)を実行したが 実際に試したらtrapが実行されなかった。 強制終了はtrapすらも強制終了するので実行されない様子。 参考:http://shellscript.sunone.me/signal_and_trap.html