Linux/コマンドメモ/trap
提供: 初心者エンジニアの簡易メモ
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