タグ

trapに関するkitokitokiのブックマーク (3)

  • シェルスクリプトでシグナルハンドラを書く - mikedaの日記

    シェルスクリプトでシグナルをトラップするにはtrapを使います。 最初の引数が実行コマンドで、その後ろにトラップするシグナルを並べます。 #!/bin/sh trap 'echo exit...' EXIT trap 'echo trap INT or TERM' INT TERM echo start sleep 5 echo end 出力 start end exit... start (^C押す) trap INT or TERM end exit... EXITはプロセス終了時に投げられる番号0のシグナルです。 シグナル指定は名前でも番号でもよくて、他のシグナルはtrap -lやkill -lで見れます。 $ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIG

    シェルスクリプトでシグナルハンドラを書く - mikedaの日記
    kitokitoki
    kitokitoki 2011/11/28
    trap の使い方
  • シグナルと trap コマンド | UNIX & Linux コマンド・シェルスクリプト リファレンス

    シグナルと trap コマンド シグナル シグナルとは? シグナルとは、実行中のプロセスに対して、さまざまなイベントを通知するために送出されるものである。 よく使用される、プロセスを終了するためのシグナルである SIGTERM や SIGKILL などのほかにも、数十種類のシグナルが存在する。 使用可能なシグナルの一覧は、コマンドラインから kill -l を実行することで参照可能である。 $ kill -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 17) SIGCHLD 18) SIGCONT 19)

    シグナルと trap コマンド | UNIX & Linux コマンド・シェルスクリプト リファレンス
  • シグナルを受け取った時に特定の処理を実行する - 元RX-7乗りの適当な日々

    Linuxでは、シェルスクリプトに送られてきたシグナルをハンドリングし、特定の処理を実行することのできるtrapコマンドがあります。 例えば、killコマンドによりシグナルを受信した場合とか、分かりやすい例でいうと、Ctrl + C (SIGINT)などの割り込みシグナルとか。 こいつを設定しておくと、例えばスクリプト終了時に確実に/tmpあたりに置く一時ファイルなどのお掃除処理なんかが出来ます。 # とはいっても、9番シグナル(SIGKILL)、つまり強制終了だけは、trapできませんが。 使い方は以下。シグナルリストはスペース区切りで、シグナル番号を複数書くことが出来ます。 trap '${実行コマンド}' ${シグナルリスト} 例えば、以下のコマンドを実行して、Ctrl + Cを押すとtrapできるはずです。 $ trap 'echo Ctrl+C pushed.' 2※ ここで、C

    シグナルを受け取った時に特定の処理を実行する - 元RX-7乗りの適当な日々
  • 1