주어진 "명령"을 기반으로 프로세스를 종료하는 방법은 무엇입니까?

주어진 "명령"을 기반으로 프로세스를 종료하는 방법은 무엇입니까?

"P1"이라는 프로세스가 있는데 이제 프로세스를 종료하는 방법은 다음과 같습니다.

$ ps aux | grep "P1"
" Now it returns two processes related to "P1": one is the actual P1 process I want to kill, the other one is the "grep P1" which I don't care.
$ kill -9 <P1 pid>

하지만 저는 이 두 프로세스를 하나로 결합하고 싶습니다. 현재는 이 작업을 수행하는 효율적인 방법을 찾을 수 없습니다. 주된 이유는 첫 번째 명령의 출력을 살펴봐야 하기 때문입니다. 좋은 제안이 있나요?

답변1

pgrep플래그 와 함께 사용할 수 있습니다 -x.

kill -9 $(pgrep -x P1)

아니면 다음과 같이 pkill할 수도 있습니다.

pkill -9 -x P1

BSD 사용 pkill:

pkill 9 -x P1

답변2

killall(1)(적어도 Fedora Linux에서는) 사용할 수 있습니다 . 그것은 많은 옵션을 가지고 있습니다.

개인적으로 나는 그것이 존재한다는 것을 알 때만 거의 사용합니다.단 하나주어진 이름을 가진 프로세스입니다.

관련 정보