아래 첨자에서 SIGTERM을 포착하지 못하는 트랩

아래 첨자에서 SIGTERM을 포착하지 못하는 트랩

두 개의 스크립트가 있습니다. 첫 번째는 기본적으로 아래 첨자를 호출하고 시간 초과를 설정하는 래퍼입니다.

#!/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 끝에 추가하면 "시간 제한에 도달했습니다"라는 메시지가 나타납니다.

관련 정보