가장 가까운 프로세스가 "notify-send"일 때 Bash에서 인수 확장과 함께 `kill $!`를 사용할 수 없는 이유는 무엇입니까?

가장 가까운 프로세스가 "notify-send"일 때 Bash에서 인수 확장과 함께 `kill $!`를 사용할 수 없는 이유는 무엇입니까?

배쉬에 따르면:특수 매개변수:

($!)는 비동기 명령으로 실행되거나 bg 내장 명령을 사용하여 가장 최근에 백그라운드에 추가된 작업의 프로세스 ID로 확장됩니다.

다음과 같이 이를 활용할 수 있습니다.

$ leafpad &
[2] 3962
$ kill $!

이는 작동하고 가장 가까운 프로세스(예 leafpad: )를 종료하지만 notify-send작동하지 않는 것 같습니다.

$ notify-send Hello &
[2] 4052
$ kill $!
bash: kill: (4052) - No such process

killall notify-osd나는 그것을 죽이는 데 사용해야합니다 .

kill $!그렇다면 왜 작동하지 않는지 궁금합니다 notify-send. 이러한 프로세스를 종료하는 올바른 방법은 무엇입니까?

참고: 시간 초과를 지정할 수 있다는 것은 알고 있지만 이는 다른 질문입니다.

답변1

notify-send일정 시간 동안 실행되지 않습니다. 시작하고 에 연결하고 notify-osd표시할 알림 메시지를 전달한 다음 종료됩니다.

kill명령 을 실행하면 notify-send자체적으로 종료됩니다. 표시되는 알림은 에서 제공합니다 notify-osd.

관련 정보