Bash의 백그라운드 작업이 완료되면 터미널에 알립니다.
$ sleep 3 &
[1] 17527
$
[1]+ Done sleep 3
알림은 일부 콜백 이벤트 처리를 기반으로 합니까?
백그라운드 작업이 완료되면 터미널에 신호를 보내서 터미널에 알리나요?
터미널에서 알림을 보려면 왜 Enter 키를 눌러야 합니까(예: 빈 명령 실행)?
답변1
~에서맨페이지:
작업 상태가 변경될 때마다 셸은 즉시 학습합니다. 일반적
bash
으로 다른 출력을 중단하지 않도록 작업 상태 변경을 보고하라는 메시지가 인쇄될 때까지 기다리십시오. 내장 명령의 옵션이 활성화된 경우-b
이러한 변경 사항은 즉시 보고됩니다. 종료되는 각 하위 프로세스에 대해 모든 트랩이 실행됩니다.set
bash
SIGCHLD
Enter알림을 보려면 버튼을 눌러야 하는 이유를 설명합니다 . 실행하여 변경할 수 있습니다 set -b
. 이번 일과는 아무 관련이 없습니다단말기, 작업 제어는 셸에서 관리됩니다. 백그라운드 프로세스가 종료되면 상위 프로세스는SIGCHLD
신호;알림입니다.