Ceci est une ancienne révision du document !
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
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.
Crédits et sources
- Auteur : montuy337513