다음 명령은 실행 중인 모든 PID를 표시합니다 vmstat1
.
ps -ef | grep "vmstat 1" | awk '{ print $2 }'
내 질문은 동시에 20명의 사람들이 있다면 어떻게 그들을 죽일 수 있느냐는 것입니다.
답변1
명령이 PID 목록을 생성하는 경우 파이프로 연결하면 됩니다.
xargs kill
귀하의 명령은 grep 명령과도 일치하므로 |grep -v grep
원래 명령 grep
앞에 이와 같은 것을 추가하는 것을 고려하십시오.
답변2
표준 명령 은 pkill
아니지만 많은 Unices에서 발견되며 이러한 유형의 작업에 특별히 사용됩니다.
pkill -f 'vmstat 1'
또한 귀하 grep
의 의지는 및 (위의 경우와 마찬가지로 ) 및 의 상위 집합과 vmstat 1
도 일치 합니다 . 더욱 강력해지려면 다음과 같이 하세요.vmstat 10
grep vmstat 1
pkill
awk
grep
ps -Ao pid,args | awk '$2 == "vmstat" && $3 == "1" {print $1}' | xargs kill
또는
pkill -xf 'vmstat 1'
답변3
이미 awk를 사용하고 있다면 다음을 수행할 수 있습니다.
ps -ef | grep "vmstat 1" | awk '!/grep/{ print "kill " $2 }' | bash
종료할 명령 목록을 출력하고, 각 명령이 프로세스를 종료하므로 잠재적인 인수 목록이 너무 길어지는 일이 없습니다(프로세스를 실행할 때는 그럴 가능성이 낮지만). 일치를 방지하기 위한 패턴을 추가했습니다. grep 프로세스 자체를 종료하면 목록이 단축될 수 있습니다.
답변4
매우 간단합니다:
$ kill -9 $(pgrep -f vmstat)