下付き文字でSIGTERMを捕捉できないトラップ

下付き文字でSIGTERMを捕捉できないトラップ

2つのスクリプトがあります。最初は、基本的に下付き文字を呼び出してタイムアウトを設定するラッパーです。

#!/bin/bash
# wrapper_script

timeout --signal=SIGTERM 50 main_script.sh

main_script.shの実行に50秒以上かかる場合は、SIGTERMをキャッチしようとします。

#!/bin/bash
# main_script.sh

trap "echo 'Reached time limit'; rm $log_file; exit" SIGHUP SIGINT SIGTERM

「タイムアウトに達しました」というメッセージは印刷されず、サブスクリプトは終了しますが、SIGTERMをキャプチャできません。私は何を逃したことがありませんか?

答え1

少なくとも提供された例では、main_script.shはトラップステートメントの直後に終了します。while :; do :; donemain_script.sh の最後に追加すると、「タイムアウトに達しました」というメッセージが表示されます。

関連情報