Eu tenho um problema sobre como matar um processo no Cygwin no Windows. Eu sou completamente novo em Cygwin. Mas tenho uma tarefa que simplesmente não consigo 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 posso pressioná-lo com Ctrl + C no terminal Cygwin, onde o processo é executado. Eu procurei por toda a internet sem sucesso.
Respostas:
Ou
Ou
fonte
ps -W | awk 'BEGIN{ IGNORECASE=1;} /calc.exe/,NF=1' | xargs kill -f
porque o Windows é case-insensitiveVocê pode tentar:
fonte
taskkill /im:{name-of-executable}
é útil também.taskkill /im <name-of-exe> /f
é ainda mais útil.taskkill //im <name-of-exe>
(note a necessidade de 2 barras)Se você deseja uma solução apenas BASH, tente o seguinte: (funciona para mim)
NOTA: use / bin / kill, o shell kill incorporado não matará PIDs para processos gerais do Windows.
fonte
(Da minha resposta a uma pergunta semelhante sobre SO ):
Programas diferentes do Windows manipularão os sinais que eliminam os envios de maneira diferente; eles nunca foram projetados para lidar com eles da mesma maneira que os programas Linux / Cygwin.
O único método confiável para matar um programa do Windows é usar uma ferramenta específica do Windows, como o Gerenciador de Tarefas ou o Process Explorer.
Dito isto, se você ainda não o fez, pode ter sorte em executar o terminal Cygwin no modo de administrador (clique com o botão direito do mouse no atalho e selecione "Executar como administrador").
fonte
Duas coisas para pensar aqui:
Para obter o WINPID correto para matar, use
cat /proc/<PID>/winpid
. Ou seja, execute isso:e imediatamente depois de fazer outro
ps
.A ferramenta certa a ser usada é o sysinternals,
PsKill64.exe -t <winpid>
que também mata todos os descendentes do processo de script, o quekill
não acontece.fonte
cat /proc/${ZID}/winpid
, muito bom saber. E mais rápido que a soluçãops -aW | grep ...
, pelo menos no meu cygwin no Windows 7 x64. Mas, para o PsKill64, acho que você precisa-t
matar subprocessos etaskkill
também pode matar subprocessos.-t
matar descendentes. Resposta corrigida.Se você possui um programa do Windows que é um subprocesso em um processo de cygwin bash, pode usar
taskkill /F /PID [the cygwin process id] /T
para matar a árvore de processos, não é necessário obter o PID do Windowsps
comawk
etc.Isso é testado no Win7 x64.
Claro que você também pode usar o PID do Windows.
fonte
No Git Bash eu uso:
Eu não tentei em Cygwin, mas acho que funcionará lá também.
fonte