일부 정보를 stdout에 인쇄하고 다음과 같이 실행하는 프로그램이 있습니다.
watch -n 0.1 myprogram
myprogram
내 문제는 시스템 전체의 뮤텍스를 해제하기 위해 적절한 소멸자를 호출하여 깔끔하게 종료 해야 한다는 것입니다 . CTRL+를 누르면 죽고 깔끔하게 C나갈 기회가 없습니다.watch
myprogram
watch
반환하기 전에 하위 프로세스가 완료될 때까지 기다리도록 깔끔하게 종료하는 방법이 있습니까 ?
페이지 man
는 간단히 다음과 같이 말합니다.
보다중단될 때까지 실행됩니다.
답변1
질문의 첫 번째 부분에 대해 "시계를 깔끔하게 종료하는 방법이 있나요?"예, 신호를 보내 프로세스를 중지할 수 있습니다.
먼저 당신이 필요합니다실행 중인 프로세스 ID(PID)를 알아보세요.watch
. 이름으로 이 작업을 수행할 수 있습니다.
pidof watch
또는 사용자에 의해 그리고Unix/linux에서 특정 사용자가 생성한 프로세스를 보는 방법
ps -u ${USER} | grep -i watch | cut -d " " -f 1
그런 다음watch
신호를 보내서 중지하세요.좋다
kill -IT ${PID}
kill -INT $(pidof watch)
질문의 두 번째 부분이 더 많습니다.신호 처리 정보.