tail --follow=name 스크립트의 경우 별도의 프로세스로 시작됩니다.

tail --follow=name 스크립트의 경우 별도의 프로세스로 시작됩니다.

로그 파일을 확인하고 문자열을 검색하는 스크립트가 있는데, 이 스크립트는 백그라운드에서 실행됩니다 &. 스크립트를 종료 하면 항상 동일한 스크립트에 대한 ps -ef | grep script.sh프로세스와 프로세스가 여전히 존재하는 것을 볼 수 있습니다 .tailgrep

또 다른 점은 프로세스의 프로세스 ID가 프로세스의 프로세스 ID에서 2를 뺀 값 tail이라는 것입니다(예: pid 7002, pid 7000, pid 7001).script.shscript.shtailgrep

  1. 내부 명령이 script.sh상위 프로세스 pid = 1인 자체 서비스로 시작되는 이유는 무엇입니까?
  2. script.sh생성된 모든 하위 프로세스를 효과적으로 종료하는 방법은 무엇입니까 ?

감사해요.

답변1

해결되었습니다!

문제는 스크립트가 완료된다는 것입니다&

스크립트에서 이를 제거 &하고 다음과 같은 명령을 실행하면:

nohup sudo script.sh &

tail프로세스는 grep기본 scriptPID 아래에 있습니다 :)

관련 정보