web-dev-qa-db-fra.com

Quelle est la commande du terminal pour trouver l'identifiant d'un processus

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?

10
jumpnett

La commande permettant de connaître l'ID d'un processus (en fonction de son nom) est pidofname__. Cependant, puisque votre intention est de tuer le processus, il existe des méthodes meilleures/plus faciles que d'utiliser pidofpour 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 pidofne 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 xkillto kill (appelez xkillet cliquez ensuite sur la fenêtre).

13
sepp2k

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
7
sajb

Vous pouvez exécuter ps -A dans le terminal pour afficher tous les processus (avec leur ID de processus) en cours d'exécution.

4
TheXed

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.

2
Meintjes

pidof . Émettez man pidof pour plus de détails.

1
mgunes

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").

1
dylnmc

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

0
Gui Imamura