대기 프로세스의 신호로 인해 wait $pid 명령이 중단되는 이유는 무엇입니까?

대기 프로세스의 신호로 인해 wait $pid 명령이 중단되는 이유는 무엇입니까?

내 관찰 내용을 적절하게 설명하는 문서를 찾을 수 없습니다. 다음 코드를 실행한 후 kill -SIGINT $my_pid다른 셸에서 실행합니다. 처음 두 번은 정확하게 볼게요 #### received trap 2. 그러나 wait명령은 모든 신호에서 중단됩니다. 왜?

#!/bin/bash

for s in {0..64}
do
    trap "echo '#### received trap $s'" $s
done

./code &
pid=$!
my_pid=$$

wait $pid
wait $pid

답변1

3.7.6 신호

Bash가 내장 함수를 통해 비동기 명령을 기다릴 때 wait트랩 세트가 있는 신호를 수신하면 대기 내장 함수가 128보다 큰 종료 상태로 즉시 반환된 다음 트랩을 즉시 실행하게 됩니다.

관련 정보