Découvrez la Commande ps

La commande ps est un outil essentiel pour surveiller les processus en cours d’exécution dans les systèmes Unix/Linux. Elle permet d’afficher des informations sur les processus, telles que l’ID du processus, l’utilisateur, l’utilisation de la mémoire, et bien plus encore. Cet article vous guidera à travers ses diverses options et comment l’utiliser dans vos scripts.

Utilisation de Base de ps

Pour commencer, la commande de base ps s’utilise simplement en tapant :

ps

Cela affichera les processus actuellement en cours d’exécution dans le terminal.

Exemple :

  PID TTY          TIME CMD
  1234 pts/0    00:00:00 bash
  5678 pts/0    00:00:00 ps

Options Courantes de ps

Voici quelques-unes des options les plus couramment utilisées :

  • ps aux : Affiche tous les processus en cours d’exécution sur le système, avec des détails supplémentaires.
  ps aux

Exemple :

  USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
  root         1  0.0  0.1  22536  1036 ?        Ss   Jul30   0:03 /sbin/init
  user      1234  0.0  0.3  15984  3108 pts/0    Ss   12:00   0:00 bash
  user      5678  0.0  0.1  34460  2860 pts/0    R+   12:01   0:00 ps aux
  • ps -ef : Affiche tous les processus en cours d’exécution avec une sortie formatée différemment.
  ps -ef

Exemple :

  UID        PID  PPID  C STIME TTY          TIME CMD
  root         1     0  0 Jul30 ?        00:03:22 /sbin/init
  user      1234  1200  0 12:00 pts/0    00:00:00 bash
  user      5678  1234  0 12:01 pts/0    00:00:00 ps -ef
  • ps -u : Affiche les processus appartenant à un utilisateur spécifique.
  ps -u user

Exemple :

  PID TTY          TIME CMD
  1234 pts/0    00:00:00 bash
  5678 pts/0    00:00:00 ps
  • ps -p : Affiche des informations sur un processus spécifique en utilisant son PID.
  ps -p 1234

Exemple :

  PID TTY          TIME CMD
  1234 pts/0    00:00:00 bash
  • ps --sort : Trie les processus selon un critère spécifique, par exemple l’utilisation de la mémoire.
  ps aux --sort=-%mem

Exemple :

  USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
  user      4321  2.0  30.5 895432 123456 ?      Sl   11:00   0:30 /usr/bin/application
  root         1  0.0  0.1  22536  1036 ?        Ss   Jul30   0:03 /sbin/init

Utilisation de ps dans les Scripts

La commande ps est également très utile dans les scripts shell pour surveiller et gérer les processus. Voici un exemple simple de script utilisant ps (attribuer les bons privilèges au script) :

#!/bin/bash

# Afficher tous les processus en cours
echo "Tous les processus en cours :"
ps aux

# Afficher les processus d'un utilisateur spécifique
USER="user"
echo "Processus pour l'utilisateur $USER :"
ps -u $USER

# Afficher les processus triés par utilisation de la mémoire
echo "Processus triés par utilisation de la mémoire :"
ps aux --sort=-%mem

Exemple Pratique

Supposons que vous souhaitiez surveiller un processus spécifique et le redémarrer s’il s’arrête. Voici un script qui utilise ps pour accomplir cela (attribuer les bons privilèges au script) :

#!/bin/bash

# Nom du processus à surveiller
PROCESS="apache2"

# Vérifier si le processus est en cours d'exécution
if ps aux | grep -v grep | grep $PROCESS > /dev/null
then
    echo "$PROCESS est en cours d'exécution."
else
    echo "$PROCESS est arrêté. Démarrage en cours..."
    systemctl start $PROCESS
    if ps aux | grep -v grep | grep $PROCESS > /dev/null
    then
        echo "$PROCESS a été démarré avec succès."
    else
        echo "Échec du démarrage de $PROCESS."
    fi
fi

Explication :

  • ps aux | grep -v grep | grep $PROCESS : Vérifie si le processus est en cours d’exécution en excluant la ligne contenant grep.

Exemple :

apache2 est en cours d'exécution.

Conclusion

La commande ps est un outil puissant pour surveiller et gérer les processus en cours d’exécution sous Unix/Linux. En combinant ses différentes options et en l’intégrant dans des scripts, vous pouvez automatiser efficacement vos tâches de gestion des processus. Essayez ces commandes et scripts pour mieux maîtriser votre environnement de travail ! 🚀