myFunc를 사용하여 호출된 무한 루프 기능을 중지하는 방법 &

myFunc를 사용하여 호출된 무한 루프 기능을 중지하는 방법 &

내 Bash 스크립트에는 무한 루프에서 특정 작업을 수행하는 함수가 있습니다. 코드의 다음 부분을 동시에 실행하려면 myFunc &.

프로그램의 나머지 부분이 완료되면 이 기능을 어떻게 종료합니까?

답변1

몇 가지 옵션이 있습니다. 이것이 유일한 백그라운드 프로세스라면 쉽게 종료할 수 있습니다.

kill %1

서브셸의 PID를 저장할 수 있습니다.

myFunc &
myFunc_PID=$!
[...]
kill -HUP "$myFunc_PID"

당신은 또한 사용할 수 있습니다

kill %myFunc

EXIT 핸들러에 서브쉘 종료를 넣는 것이 합리적입니다.

trap 'kill %myFunc' EXIT

관련 정보