
Ubuntu Server 14.04에서 명령 복사본 2~5개를 생성하는 작업을 수행하고 있습니다.
kill
나는 그들 모두 에 대해 가장 간단한 것(즉, 가능하다면 스크립트 대신 단일 명령줄)을 찾으려고 노력하고 있습니다 . 진짜 비결은 내가 사용하고 있다는 것입니다앤서블수십 개의 서버에 임시 명령을 보내려면 각 프로세스를 호출하는 데 시간이 많이 걸립니다.
예:
ps aux | grep bash
user 1031 0.0 0.0 4444 652 ? Ss Aug15 0:00 /bin/sh -c /home/user/start-cacheable.bash
user 1032 0.0 0.1 12400 1432 ? S Aug15 0:00 /bin/bash /home/user/start-cacheable.bash
user 1327 0.0 0.3 12744 2254 tty1 S Aug15 0:00 -bash
이제 여기에서 나는 달릴 것이다 kill 1031 1032
. 작업을 완료할 수 있는 깔끔한 명령이 있나요?
답변1
@jjlin 답변이 효과가 있을 수 있습니다.
pgrep/pkill
그러나 및 의 작동을 설명하려면 다음을 수행하십시오 killall
.
킬러가 찾는다프로세스 이름단지 - 그게 에서 본 부분이에요/proc/<pid>/comm
pgrep/pkill은 기본적으로 동일하지만 인수에서도 일치 항목을 찾을 수 있습니다(-f). 그러면 다시 일치하게 됩니다./proc/<pid>/cmdline
기본적으로 기본적으로 표시된 문자열만 ps -A
고려됩니다.
예:
process name (comm): sshd
full command/arguments (cmdline): /usr/sbin/sshd -f /etc/ssh/sshd_config
지금 - 작동 하겠지만 (의도적인 오타, 하지 kilall/pkil sshd
마세요;)killall /usr/sbin/sshd
작동하지
경로는 확인할 수 있는 프로세스 이름의 일부가 아니기 때문입니다 pgrep -lf sshd_config
(예: pkill -f).
그런 다음 고려해야 할 다른 사항이 있습니다. 정규식이 필요한지 또는 프로세스 그룹을 활용하려는지 여부에 관계없이 Killall
명령 이름의 처음 15바이트(참고자료 참조)에서만 일치할 수 있습니다.killall -e
참고: /proc/... 파일은 null로 구분되므로 복사/붙여넣기 중에 주의하세요.
답변2
이것을 사용할 수 있습니다.
ps aux | grep <your keyword> | grep -v grep | awk '{print $2}' | xargs kill -9
일치하는 프로세스를 나열하고, grep 프로세스 자체를 필터링하고, PID를 가져와 kill -9에 전달합니다.
kill -9를 사용하기 전에 테스트하십시오.
답변3
노력하다
pkill start-cacheable.bash
답변4
당신이 사용할 수있는
killall <process name>