Gestion des processus sur Linux Debian
Un processus est l'instance d'exécution d'un programme dans un contexte donné. Plusieurs processus d'un même programme peuvent s'exécuter parallèlement sur le même serveur, et exécuter par des utilisateurs différents. Nous verrons ici un ensemble d'instructions permettant la gestion de ces processus sur une machine Debian.
Lister et gérer les processus
La commande top ou htop
Pour lister les processus tournant sur la machine Debian, on peut utiliser la commande top.
top
Pour ma part, je préfère utiliser le programme htop qui est plus complet que top.
htop n'est pas installé nativement sur Debian. Il faut l'installer avec aptitude ou apt-get, comme ceci : aptitude install htop
htop
La commande ps
La commande ps permet d'afficher les processus en cours d'exécution.
- Afficher les processus de l'utilisateur en cours
ps
- Afficher tous les processus en cours d'exécution sur le serveur
ps aux
- Afficher les processus lancés par un utilisateur spécifique
ps -u root ps -u apache2
La commande pidof
La commande pidof est plus adapté a l'utilisation dans un script car pidof retourne les PID d'un processus contrairement a la commande ps qui fait un instantané.
pidof apache2
Cet exemple donnera à l'écran quelque chose qui ressemble a ceci
15008 15006 15005 15004 15003 15001 10046 10044 10043 9997 9975
Ici nous constatons que Apache2 est lancé plusieurs fois, ce qui est normal. Un processus Apache2 est attribué à chaque visiteur.
Arrêt des processus
Il arrive, parfois, qu'on ai besoin d'arrêter un processus, voici 3 commandes spécialisées dans l'arrêt des processus.
- La commande killall
killall permet de tuer tous les processus dont le nom de commande est connu
killall apache2
- La commande kill
kill permet de tuer le processus dont on connait le PID.
kill -9 2731
On peut connaître le PID d'un processus grâce à la commande top ou htop.
- La commande pkill
pkill permet d'arrêter tous les processus liés à un utilisateur spécifique.
pkill -u utilisateur
Vie des processus
- Connaître quel port est écouté par quel processus
On va prendre comme exemple un cas pratique. J'ai rencontré lors d'un redémarrage serveur postfix qui ne voulait pas démarrer car un processus était déjà en route sur le port 25. J'avais ce message dans les logs
Mar 6 18:36:16 xxx postfix/master[4393]: fatal: bind 0.0.0.0 port 25: Address already in use
Pour savoir quel processus écoutait sur le port 25, et empêchait le redémarrage de postfix, j'ai utilisé cette commande :
lsof -i TCP:25
Ce qui m'a donné le message suivant :
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sendmail- 3169 root 4u IPv4 6510 0t0 TCP ns1.chg-web.net:smtp (LISTEN)
Donc, il a suffit de "killer" le processus avec la commande kill pour pouvoir démarrer postfix.
Auteurs et sources
- Auteur : montuy337513
Navigation
Autres liens rapides pouvant vous intéresser