
Estou com um problema sobre como encerrar um processo no Cygwin no Windows. Eu sou completamente novo no Cygwin. Mas tenho uma tarefa que simplesmente não posso matar. Eu tentei emitir os seguintes comandos:
kill 4568
kill -9 4568
/bin/kill -f 4568
Emiti os comandos em um terminal Cygwin separado, pois não consigo Ctrl+C no terminal Cygwin onde o processo é executado. Procurei por toda a internet sem sucesso.
Responder1
ps -W | awk '/calc.exe/,NF=1' | xargs kill -f
Ou
ps -W | awk '$0~v,NF=1' v=calc.exe | xargs kill -f
Ou
powershell kill -n calc
Responder2
Você pode tentar:
taskkill /pid 4568
Responder3
Se você quiser uma solução somente BASH, tente isto: (funciona para mim)
KILLPS="<My Process Name>"
WINPS=`ps -W | grep -i $KILLPS` # Make case-insensitive.
PID=`echo $WINPS | cut -d' ' -f1`
/bin/kill -f "$PID"
NOTA: use /bin/kill, o shell kill incorporado não eliminará PIDs para processos gerais do Windows.
Responder4
Duas coisas para pensar aqui:
- Obtenha o PID correto, que é o WINPID.
- Use a ferramenta certa.
Para obter o WINPID correto para matar, use cat /proc/<PID>/winpid
. Ou seja, execute isto:
ZID=$$; WINPID=$(cat /proc/${ZID}/winpid); echo "Kill WINPID: ${WINPID}"; ps; sleep 10 &
e imediatamente depois faça outro ps
.
A ferramenta certa para usar éSysinternals' PsKill64.exe -t <winpid>
que também mata todos os descendentes do processo de script, o que kill
não acontece.