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 contenantgrep
.
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 ! 🚀