Cygwin 터미널에서 Windows 프로세스를 종료하는 방법은 무엇입니까?

Cygwin 터미널에서 Windows 프로세스를 종료하는 방법은 무엇입니까?

Windows의 Cygwin에서 프로세스를 종료하는 방법에 관한 문제가 있습니다. 저는 Cygwin을 처음 접했습니다. 하지만 나에게는 도저히 죽일 수 없는 임무가 있다. 다음 명령을 실행해 보았습니다.

kill 4568
kill -9 4568
/bin/kill -f 4568

프로세스가 실행되는 Cygwin 터미널에서는 Ctrl+C를 사용할 수 없기 때문에 별도의 Cygwin 터미널에서 명령을 실행했습니다. 나는 성공하지 못한 채 인터넷 전체를 검색했습니다.

답변1

ps -W | awk '/calc.exe/,NF=1' | xargs kill -f

또는

ps -W | awk '$0~v,NF=1' v=calc.exe | xargs kill -f

또는

powershell kill -n calc

답변2

다음을 시도해 볼 수 있습니다.

taskkill /pid 4568

답변3

BASH 전용 솔루션을 원한다면 다음을 시도해 보십시오. (저에게 적합합니다)

    KILLPS="<My Process Name>"
    WINPS=`ps -W | grep -i $KILLPS`         # Make case-insensitive.
    PID=`echo $WINPS | cut -d' ' -f1` 
    /bin/kill -f "$PID"

참고: /bin/kill을 사용하십시오. 내장된 쉘 kill은 일반 Windows 프로세스에 대한 PID를 종료하지 않습니다.

답변4

여기서 생각해 볼 두 가지 사항:

  1. WINPID인 올바른 PID를 가져옵니다.
  2. 올바른 도구를 사용하십시오.

종료할 올바른 WINPID를 얻으려면 cat /proc/<PID>/winpid. 즉, 다음을 실행합니다.

ZID=$$; WINPID=$(cat /proc/${ZID}/winpid); echo "Kill WINPID: ${WINPID}"; ps; sleep 10 &
 

그리고 그 직후에 또 다른 일을 합니다 ps.

사용하기에 적합한 도구는시스인터널스' PsKill64.exe -t <winpid>또한 스크립트 프로세스의 모든 하위 항목을 종료하지만 그렇지 kill않습니다.

관련 정보