답변:
실행 pgrep -f "ssh.*-D"
하고 올바른 프로세스 ID를 리턴하는지 확인하십시오. 만약 그렇다면, 단순히 변경 pgrep
에 pkill
동일한 옵션과 패턴을 유지
또한 kill -9
프로그램이 종료되기 전에 SIGKILL을 정리하여 정리할 수 없기 때문에 반드시 필요한 경우가 아니면 일명 SIGKILL을 사용해서는 안됩니다 . 난 단지 사용하는 kill -9
첫번째 시도 후 -1
-2
와 -3
.
for
루프 로 살인을 재정의해야합니다 ;)kill -i
i
pgrep
OSX에 고유하지 않은 경우 타사에서 가져와야합니다. 주제에 대한 이전 스레드 에는 제안과 대안이 있습니다.
-a
플래그 를 추가하는 것이 유용 할 수 있습니다 pgrep
. 이렇게하면 원하는 프로세스 만 일치하는지 쉽게 확인할 수 있습니다.
proc 파일 시스템을 활용하여 정보를 수집 할 수 있습니다. 예를 들면 다음과 같습니다.
for proc in $(grep -irl "ssh.*-D" /proc/*/cmdline | grep -v "self"); do if [ -f $proc ]; then cat $proc && echo ""; fi; done
완벽하지는 않지만 더 독점적 인 정규 표현식 (특히 프로세스를 종료하는 경우)을 원하지만 프로세스 echo $proc | awk -F'/' '{ print $3 }'
의 PID를 표시합니다.
/proc
. 그리고 이미 pgrep
(적어도 Solaris 및 Linux에서 사용 가능 )이라고하는 강력한 도구가 있습니다.
pgrep
및pkill
신뢰성 찾거나 솔라리스와 리눅스에서 이름으로 프로세스를 종료하는 명령입니다.