우분투16.04
나는 이 명령줄을 사용하여 명령과 일치하는 모든 프로세스를 종료하는 데 익숙합니다.
for i in $(ps -ef | grep COMMAND | awk '{ print $2 }'); do kill -9 "$i" &>/dev/null;done
shellcheck는 그것을 너무 좋아하지 않고 제안합니다
root@singa /home # shellcheck run
In run line 4:
for i in $(ps -ef | grep COMMAND | awk '{ print $2 }'); do kill -9 "$i" &>/dev/null;done
^-- SC2009: Consider using pgrep instead of grepping ps output.
XXX를 대체하기 위해 이를 수행하려면 어떤 플래그가 필요합니까?
for i in $(pgrep XXX | grep COMMAND | awk '{ print $2 }'); do kill -9 "$i" &>/dev/null;done
pgrep에 대한 매뉴얼 페이지를 확인했습니다.
답변1
for pid in $(pgrep command); do
kill -9 $pid
done
또는 더 나은 방법은 다음과 같습니다.
pkill -9 command
그런데 무관심한 사용은 kill -9
때때로 좀비 발생, 고아 파일, 영구 임시 파일 및 기타 질병으로 이어질 수 있습니다. 대신 kill
기본 전송을 사용하는 것을 고려해 보십시오 .SIGTERM
SIGKILL
답변2
나는 다음과 같은 방법을 수행했습니다
for i in pickup hald-runner; do pgrep $i | awk '{print "kill" " " $1}'| sh;done
여기서 픽업, 홀드러너는 프로세스 이름입니다.