스크립트 종료 시 bash 스크립트에서 백그라운드 프로세스 종료

스크립트 종료 시 bash 스크립트에서 백그라운드 프로세스 종료

tail파일에 스크립트가 있습니다오른쪽 상단에 시계도 표시됩니다.. 온라인에서 시계 부분을 가져왔는데 잘 작동합니다. 전체 스크립트는 다음과 같습니다(단순화했습니다).

while sleep 1; do tput sc; tput cup 0 $(($(tput cols)-29)); date; tput rc; done &
tail -f mylog.log

다 괜찮은데 문제는내가 스크립트를 멈출 때시계 사용은 CTRL+C내 콘솔에서 계속 실행됩니다(나머지 bash 프로세스를 수동으로 종료할 때까지). 그래서,스크립트를 종료할 때 프로세스를 중지하는 방법이 있습니까?

아래 코드를 시도했지만 작동하지 않습니다.

while sleep 1; do tput sc; tput cup 0 $(($(tput cols)-29)); date; tput rc; done &
CLOCK_PID=$!
tail -f mylog.log
kill -9 $CLOCK_PID

bash 에 갇히는 방법을 검색했지만 CTRL+C이것이 올바른 방법인지 잘 모르겠습니다 ...

답변1

CLOCK_PID=$!
trap 'kill -9 $CLOCK_PID' EXIT
tail -f mylog.log

답변2

귀하의 필요에 맞을 수도 있습니다 watch. 기본적으로 현재 시간이 인쇄됩니다. 그것은 다음과 같습니다:

$ watch tail -n 30 /var/log/syslog

관련 정보