Je lance un programme dans le terminal avec lequel je ne peux pas m'échapper Ctrl- Cet que je veux tuer. Comment puis-je trouver son PID?
command-line
process
Jjed
la source
la source
Réponses:
Ouvrez un autre terminal et exécutez
ps ax | grep foo
où foo est le nom du programme qui ne répond pas. Cela devrait renvoyer une ligne de sortie qui ressemble à ceci:Le premier champ de chaque ligne de sortie est un nombre qui représente l'ID de processus du programme correspondant
grep
(vous pouvez ignorer en toute sécurité le dernier, qui se représentegrep
lui-même.Pour arrêter le processus incriminé, procédez comme
kill pid
suit : où pid correspond à l'ID de processus du programme. Vous devrez peut-être utiliser votre jugement pour déterminer laquelle des correspondances doit êtrekill
modifiée, ou vous pouvez utiliser à latop
place. L'utilisationkill
seule envoie SIGTERM, ce que vous devez d'abord essayer car cela permet au programme de se nettoyer correctement. Si SIGTERM échoue, essayez SIGHUP, qui est la médecine stonger:kill -HUP pid
. Si tout échoue, envoyez SIGKILL. Toutefois, vous ne devez le faire qu'en dernier recours, car SIGKILL force le noyau à mettre immédiatement fin au processus, sans possibilité de nettoyage. Cela peut parfois entraîner une corruption des données ou d'autres problèmes. Encore une fois, n'envoyez que SIGKILL en dernier recours. Pour ce faire, faiteskill -KILL pid
oukill -9 pid
.Bien sûr, si vous utilisez une interface graphique, vous n'avez pas besoin de vous tromper avec ce truc fou de ligne de commande pour faire le travail. Il suffit d’ouvrir «Moniteur système», d’accéder à l’onglet Processus, de choisir le processus à arrêter (Hm, s’agit-il du processus utilisant 90% de l’UC?) Et de cliquer dessus avec le bouton droit de la souris. Puisque le processus est déjà arrêté, (c'est le problème, non?), Choisissez Terminer le processus ou Supprimer le processus dans le menu qui apparaît.
la source
kill -9
est un mauvais conseil. J'ai édité la réponse pour la corriger.ping
commande etsleep
. Selon unix.stackexchange.com/a/275826/72988 , il n’est pas possible sous Ubuntu sansmultiplexer
.Je ne pense pas que des commandes aussi longues soient nécessaires lorsque vous pouvez exécuter les mêmes commandes avec pgrep, pkill, pidof, etc.
pgrep:
DESCRIPTION: pgrep examine les processus en cours et répertorie les ID de processus correspondant aux critères de sélection de stdout. Tous les critères doivent correspondre. Par exemple,
Pour trouver le processus nommé sshd appartenant à root.
Répertoriez les processus possédés par le démon root OR.
pidof:
DESCRIPTION :
Pidof trouve les identifiants de processus (pids) des programmes nommés. Il imprime ces identifiants sur la sortie standard.
syntaxe: pidof nom_programme
Pour tuer un programme par pid, utilisez l'exemple pkill:
-f
flag: recherche le nom du processus (voir man pkill).-o
flag: sélectionne uniquement le processus le plus ancien.-n
flag: sélectionne uniquement le plus récent des processus correspondants.-l
flag: Répertorie le nom du processus ainsi que son identifiant.la source
Le moyen le plus simple de connaître le pid d'un programme en cours consiste à utiliser:
Par exemple, si vous avez démarré vim et souhaitez connaître son pid:
N'oubliez pas que vous devrez fournir le nom exact du programme qui a été démarré.
Par exemple, si vous exécutez vi et exécutez,
pidof vim
vous n'obtiendrez pas de résultats corrects.Reportez-vous à
pidof
la page de manuel de pour plus d'informations.la source
pidof mysqld
renvoie un PID. Cependant, si je tapepidof Mariadb
rien ne sera retourné. Est-ce le même PID pour MariaDB et MySQL?J'ai trouvé agréable d'utiliser une recherche insensible à la casse en ajoutant "-i" et en utilisant "aux" au lieu de "ax" pour obtenir un résultat plus descriptif:
Si vous souhaitez supprimer tous les processus que vous pouvez utiliser:
C'est un coup puissant. Lâchez le "-9" si vous voulez une tuerie douce.
la source
ps aux | grep -i firefox...
processus, car il contient le textefirefox
dans sa commande!grep -i firefo[x]
pour correspondre uniquement à firefox-9
aveckill
, voir ici pour des explicationsSi vous voulez seulement le pid (utile pour les scripts autokill, etc ...)
la source
Pour ceux qui exécutent Ubuntu 16.04 LTS, vous devez utiliser
ps ax
et pas seulementps
en ligne de commande, sinon vous obtiendrez simplement les processus générés à partir de l'instance de terminal particulière dans laquelle vous vous trouvez. ] et 'ps' [ce que tu viens de courir])la source
ps -e
(montre tout) etps -ejH
(montre un arbre de processus).Vous pouvez également ouvrir un autre terminal (ou passer à un autre terminal) et exécuter
top
, qui est essentiellement une version texte du Moniteur système. La première colonne répertorie le PID de chaque processus en cours, que vous pouvez supprimer en appuyant sur K, en entrant le PID, puis en entrant un signal numérique à envoyer.la source
Vous pourriez faire:
Les deux premiers tuyaux reçoivent des informations sur le processus, puis nous essayons d’obtenir la colonne PID en utilisant la coupe old-school, puis nous donnons le PID résultant à tuer.
la source
kill -9
est le plus gros pistolet que vous devez tuer un processus. Avant de faire appel à SIGKILL, vous devriez essayer un signal plus discret pour laisser au processus une chance de nettoyer ses ressources.ou
liste tous les pid avec le processus correspondant
la source