trap(1)
任意の
シグナル
が送出されたときに、特定のコールバック関数を呼び出すことできる
Bashのビルトインコマンド
。
シェルスクリプト
で
Graceful Termination
を実装したいときに便利。
たとえば、以下の例では以下のシグナルのいずれかが送出されたときに、cleanupを実行する。
SIGHUP
SIGINT
SIGQUIT
SIGABRT
code:sh
TRASH=$(mktemp)
trap cleanup HUP INT QUIT ABRT
cleanup()
{
echo "Removing temporary files:"
rm -rf "$TRASH"
exit
}