"kill -SIGTERM"이 "tail -f"를 중지합니까?

"kill -SIGTERM"이 "tail -f"를 중지합니까?

제목에서 알 수 있듯이 Google은 나에게 아무것도 제공하지 않으며 이 서버에서 테스트할 수 없습니다.

명령은 다음과 같습니다.

tail -f <file> | fgrep --line-buffered "string" | sed -u 's/stuff//g' >> output.log

kill -SIGTERM <PID>을 사용 하거나 kill -SIGKILL <PID>중지 해야 합니까 tail -f?

답변1

  • SIGTERM은 명령에 신호를 보내고 명령이 스스로 중지하도록 지시합니다. kill로 인해 파일을 정리해야 하는 경우 명령을 사용하면 됩니다.
  • SIGKILL은 init 시스템에 신호를 보냅니다. 명령 자체는 죽을 것이라는 말조차 듣지 않습니다.

따라서 둘 다 사용할 수 있습니다. 그러나 SIGTERM이 선호되어야 합니다(더 우아합니다).

"kill -SIGTERM"이 "tail -f"를 중지합니까?

예, 그럴 것입니다. Linux에서 tail은 SIGTERM에서 작동합니다.

답변2

를 사용할 필요도 없습니다 SIGTERM. 그리고 도 tail듣습니다 . 신호 사이에 차이가 있는지는 잘 모르겠지만(모두 에 국한됨 ) 이들 중 어느 것이든 .SIGINTSIGQUITtailSIGKILL

테스트하는 것도 매우 쉽습니다.

$ tail -f /dev/null > /dev/null &
[1] 26599
$ kill -SIGINT $!
[1]+  Interrupt               tail -f /dev/null > /dev/null

관련 정보