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