답변:
실행 pgrep -f "ssh.*-D"하고 올바른 프로세스 ID를 리턴하는지 확인하십시오. 만약 그렇다면, 단순히 변경 pgrep에 pkill동일한 옵션과 패턴을 유지
또한 kill -9프로그램이 종료되기 전에 SIGKILL을 정리하여 정리할 수 없기 때문에 반드시 필요한 경우가 아니면 일명 SIGKILL을 사용해서는 안됩니다 . 난 단지 사용하는 kill -9첫번째 시도 후 -1 -2와 -3.
for루프 로 살인을 재정의해야합니다 ;)kill -ii
pgrepOSX에 고유하지 않은 경우 타사에서 가져와야합니다. 주제에 대한 이전 스레드 에는 제안과 대안이 있습니다.
-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신뢰성 찾거나 솔라리스와 리눅스에서 이름으로 프로세스를 종료하는 명령입니다.