it-swarm-eu.dev

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

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 top ou 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 top ou ps pour cela?

22
Jonas

Depuis la page de manuel ps:

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

Donc, ps -e affichera tous les processus. Les options courantes pour "tout me donner" sont ps -ely ou ps aux, ce dernier est le style BSD. Souvent, les gens dirigent ensuite cette sortie vers grep pour rechercher un processus, comme dans la réponse de xenoterracide. Afin d'éviter de voir également grep lui-même dans 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 commande pgrep si elle est disponible. Je pense qu'il est disponible sur Ubuntu Server. L'utilisation de pgrep signifie que vous évitez les conditions de concurrence mentionnées ci-dessus. Il fournit également d'autres fonctionnalités qui nécessiteraient une astuce grep de plus en plus compliquée à répliquer. 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 pgrep pour les autres options de sortie. J'ai trouvé la page suivante très utile:

http://mywiki.wooledge.org/ProcessManagement

26
Steven D

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 courante c'est que c'est ps -aux mais ce n'est pas correct)

3
xenoterracide