Comment puis-je voir quels processus sont en cours d'exécution?

21

J'utilise Ubuntu Server 10.10 et je voudrais voir quels processus sont en cours d'exécution. Je sais que PostgreSQL s'exécute sur ma machine mais je ne peux pas le voir avec les commandes topou ps, donc je suppose qu'ils ne montrent pas tous les processus en cours d'exécution. Existe-t-il une autre commande qui affichera tous les processus en cours ou y a-t-il d'autres paramètres que je peux utiliser avec topou pspour cela?

Jonas
la source

Réponses:

26

Depuis la pspage de manuel:

-e Sélectionnez tous les processus. Identique à -A.

Ainsi, ps -eaffichera tous les processus. Les options courantes pour «donnez-moi tout» sont ps -elyou ps aux, ce dernier est le style BSD. Souvent, les gens grepdirigent ensuite cette sortie vers pour rechercher un processus, comme dans la réponse de xenoterracide. Afin d'éviter de se voir également grepdans la sortie, vous verrez souvent quelque chose comme:

 ps -ef | grep [f]oo

où foo est le nom du processus que vous recherchez.

Cependant, si vous recherchez un processus particulier, je vous recommande d'utiliser la pgrepcommande si elle est disponible. Je pense qu'il est disponible sur Ubuntu Server. En utilisant pgrep, vous évitez les conditions de concurrence mentionnées ci-dessus. Il fournit également d'autres fonctionnalités qui nécessiteraient une grepsupercherie de plus en plus compliquée à reproduire. La syntaxe est simple:

pgrep foo

où foo est le processus que vous recherchez. Par défaut, il affichera simplement l'ID de processus (PID) du processus, s'il en trouve un. Voir man pgreppour d'autres options de sortie. J'ai trouvé la page suivante très utile:

http://mywiki.wooledge.org/ProcessManagement

Steven D
la source
Je me demande quel pourcentage de personnes utilisent pssans connaître les drapeaux. Je jette juste auxdessus toujours; Je n'ai aucune idée de ce que les drapeaux individuels contrôlent réellement
Michael Mrozek
3

as-tu essayé ps aux | grep postgres? il devrait vraiment apparaître si postgres est en cours d'exécution. Si ce n'est pas le cas ... comment savez-vous que postgres fonctionne?

(note: c'est une idée fausse commune c'est ça ps -auxmais c'est pas correct)

xénoterracide
la source
Merci, ps auxa mieux fonctionné, il a montré environ 70 processus, alors qu'il psn'en a montré que deux. Je sais que PostgreSQL fonctionnait depuis que j'ai vu qu'il avait démarré au démarrage et qu'il s'était arrêté à l'arrêt.
Jonas
@Jonas certains scripts d'initialisation sont mal écrits. Ne les croyez pas simplement parce qu'ils disent que quelque chose a commencé et s'est arrêté. Juste quelques conseils
xenoterracide
Il y a aussi pgrepcela, qui a l'avantage de ne jamais attraper votre ps aux | grep postgrescommande elle-même dans la liste des processus et de la produire
Michael Mrozek