J'ai un problème avec la façon de tuer un processus dans Cygwin sous Windows. Je suis complètement nouveau chez Cygwin. Mais j'ai une tâche que je ne peux tout simplement pas tuer. J'ai essayé d'émettre les commandes suivantes:
kill 4568
kill -9 4568
/bin/kill -f 4568
J'ai émis les commandes dans un terminal Cygwin séparé, car je ne peux pas le faire Ctrl + C dans le terminal Cygwin où le processus s'exécute. J'ai cherché partout sur Internet sans succès.
Réponses:
Ou
Ou
la source
ps -W | awk 'BEGIN{ IGNORECASE=1;} /calc.exe/,NF=1' | xargs kill -f
car Windows neVous pouvez essayer:
la source
taskkill /im:{name-of-executable}
est utile aussi.taskkill /im <name-of-exe> /f
est encore plus utile.taskkill //im <name-of-exe>
(notez la nécessité de 2 barres obliques)Si vous voulez une solution uniquement BASH, essayez ceci: (cela fonctionne pour moi)
REMARQUE: utilisez / bin / kill, la suppression dans le shell incorporé ne supprimera pas les PID pour les processus Windows généraux.
la source
(De ma réponse à une question similaire sur SO ):
Différents programmes Windows gèrent les signaux qui tuent les envois différemment. ils n'ont jamais été conçus pour les traiter de la même manière que les programmes Linux / Cygwin.
La seule méthode fiable pour tuer un programme Windows consiste à utiliser un outil spécifique à Windows, tel que Task Manager ou Process Explorer.
Cela dit, si vous ne l’avez pas déjà fait, vous pourrez peut-être utiliser votre terminal Cygwin en mode administrateur (cliquez avec le bouton droit de la souris sur votre raccourci et sélectionnez "Exécuter en tant qu’administrateur").
la source
Deux choses à considérer ici:
Pour que le WINPID correct tue, utilisez
cat /proc/<PID>/winpid
. C'est à dire ça:et immédiatement après faire un autre
ps
.Le bon outil à utiliser est sysinternals,
PsKill64.exe -t <winpid>
qui tue également tous les descendants du processus de script, ce quikill
n'est pas le cas.la source
cat /proc/${ZID}/winpid
, très bon à savoir. Et plus rapide que la solution avecps -aW | grep ...
, au moins sur mon cygwin sous Win 7 x64. Mais pour PsKill64, je pense que vous devez-t
supprimer les sous-processus et que voustaskkill
pouvez également supprimer les sous-processus.-t
pouvoir tuer les descendants. Réponse corrigée.Si vous avez un programme Windows qui est un sous-processus sous un processus cygwin bash, vous pouvez l’utiliser
taskkill /F /PID [the cygwin process id] /T
pour supprimer l’arborescence des processus. Il n’est pas nécessaire d’obtenir le PID de Windowsps
avecawk
etc.Ceci est testé sous Win7 x64.
Bien sûr, vous pouvez également utiliser le PID de fenêtre.
la source
Dans Git Bash, j'utilise:
Je ne l'ai pas essayé dans Cygwin, mais je suppose que cela fonctionnera également là-bas.
la source