Je souhaite quitter un processus à l'aide de la ligne de commande, mais je ne parviens pas à me rappeler la commande permettant de rechercher l'ID du processus. Est-ce que quelqu'un le sait?
La commande permettant de connaître l'ID d'un processus (en fonction de son nom) est pidof
name__. Cependant, puisque votre intention est de tuer le processus, il existe des méthodes meilleures/plus faciles que d'utiliser pidof
pour trouver son pid en premier:
En supposant que le processus que vous souhaitez supprimer soit uniquement identifié par son nom (ou que vous souhaitiez supprimer tous les processus portant ce nom), vous n'avez pas besoin de connaître son pid. Vous pouvez simplement faire killall processname
.
S'il existe plusieurs processus portant le même nom, mais que vous souhaitez seulement en tuer un, utiliser pidof
ne vous aidera pas beaucoup, car cela vous donnera les pids, mais il ne vous donnera aucune information permettant de déterminer lequel de ces processus est le suivant. le pids appartient au processus que vous voulez réellement tuer.
Dans ce cas, vous pouvez créer ps aux | grep processname
, qui affiche tous les processus portant le nom indiqué, ainsi que la console sur laquelle ils s'exécutent (le cas échéant) et les arguments avec lesquels ils ont été appelés, ce qui vous permet, espérons-le, d'identifier le processus recherché. pour.
Si le processus a ouvert des fenêtres X, vous pouvez également utiliser xkill
to kill (appelez xkill
et cliquez ensuite sur la fenêtre).
Vous devriez jeter un coup d'oeil à pgrep
et pkill
, deux utilitaires très pratiques et puissants que l'on trouve sur la plupart des systèmes Linux et UNIX.
$ apropos pgrep
pgrep (1) - look up or signal processes based on name and other attributes
Vous pouvez exécuter ps -A
dans le terminal pour afficher tous les processus (avec leur ID de processus) en cours d'exécution.
J'ai aussi eu un problème similaire. J'ai utilisé pstree -p
; Cela m'a montré les processus en cours d'exécution, y compris les ID de processus.
pidof
. Émettez man pidof
pour plus de détails.
Mon préféré est pstree -p | grep $(program_name)
. En fait, cela met en évidence le processus, le met en surbrillance et affiche le pid entre parenthèses.
Mon prochain favori (en particulier lorsque vous programmez et dont vous avez besoin de toutes les pids du processus) est pgrep -law ""
. Cela vous donne littéralement chaque exécution de pid suivie par l'application (avec le chemin absolu).
Cela peut être réduit à pgrep -lw ""
pour pid suivi du nom du programme ou même simplement pgrep -l
pour tous les pids
Bien sûr, vous pouvez rechercher un programme particulier (ou une partie du nom d’un programme). (i.e. pgrep -lw firef
affichera probablement quelque chose comme "4567 firefox").
Cette réponse, de @Ben sur un question dupliquée , a résolu mon problème:
Pensez à utiliser la commande top
dans le terminal.
The top program provides a dynamic real-time view of a running
system. It can display system summary information as well as a
list of processes or threads currently being managed by the Linux
kernel. The types of system summary information shown and the
types, order and size of information displayed for processes are
all user configurable and that configuration can be made persis‐
tent across restarts.
via top man