====== 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 : [[:user:montuy337513]] ===== Navigation ===== * [[:accueil|Accueil]] * [[:serveur-debian-securite]] * [[:serveur-debian-general]] * [[:serveur-debian-automatisation]] * [[:serveur-debian-file]] * [[:serveur-debian-log]] * [[:serveur-debian-user-groupe]] * [[:serveur-debian-apache2]] * [[:serveur-debian-postfix]] * [[:serveur-debian-mysql]] * [[:serveur-debian-divers]]