[linux] 파이프를 통해 죽이는 인수를 제공하는 방법

특정 프로세스를 검색하고 해당 프로세스를 종료해야합니다. 다음과 같은 명령을 작성했습니다.

ps -e | grep dmn | awk '{print $1}' | kill

프로세스 이름은 dmn. 그러나 작동하지 않습니다. 이름과 프로세스를 어떻게 찾을 수 있습니까 kill?



답변

kill $(ps -e | grep dmn | awk '{print $1}')


답변

제거하려는 프로세스가 여러 개인 경우 다음을 사용할 수 있습니다.

ps -efw | grep dmn | grep -v grep | awk '{print $2}' | xargs kill

참고 : 출력에서 ​​grep 프로세스 자체를 제거해야하므로 grep -v grep사용됩니다.


답변

당신은 사용할 수 있습니다

pkill dmn

시스템에 pkill 명령 이있는 경우 .


답변

다른 사람을 추가하는 것 뿐이지 만 awk의 정규식 기능 용량을 사용하는 것을 좋아합니다.

kill $(ps | awk '/dmn/{print $1}')


답변

pidof시스템에 명령 이있는 경우 (내가 잘못하지 않는 한 ZSH와 같은 쉘이 기본적으로 제공된다는 것을 알고 있습니다), 다음과 같이 할 수 있습니다.

kill -9 $(pidof dmn)


답변

killall 을 사용할 수도 있습니다 .

killall dmn


답변

명령이 있고 이미지 이름을 알고 pipe있다면이 작업이 필요하지 않을 수도 있습니다 pidof.

kill $(pidof synergyc)

$()본질적으로 파이프처럼 사용할 수있는 변수로 출력을 변환하므로 이것을 이해합니다. 다른 옵션보다 짧고 이해하기 쉽지만 유연성이 떨어지고 직접적 일 수도 있습니다.