Outils pour utilisateurs

Outils du site


sysadmin:linux:gestion-processus

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
sysadmin:linux:gestion-processus [2021/03/25 19:47] – [Les jobs] 93.28.24.141sysadmin:linux:gestion-processus [2021/03/25 20:19] (Version actuelle) – corrections et ajout section priorité 93.28.24.141
Ligne 73: Ligne 73:
 ===== Contrôle des processus ===== ===== Contrôle des processus =====
  
-Les commandes ''**bg**'' et ''**fg**'' n'autorisent le contrôle que des processus fils du shell courant (jobs). Pour contrôler l'exécution des processus ne dépendant pas du shell, on disposera des commandes **kill**, **killall**, **pkill** et **skill**.+Les commandes ''**bg**'' et ''**fg**'' n'autorisent le contrôle que des processus fils du shell courant (jobs). De manière générale, **le contrôle de lexécution des processus s’effectue en envoyant des signaux**. 
 + 
 +Pour envoyer des signaux aux processus, on disposera entre autre des commandes **kill**, **killall**, **pkill** et **skill**. 
 + 
 + 
 +==== Les signaux ==== 
 + 
 +Les signaux sont envoyés par le système ou les commandes skill et kill* pour contrôler les processus. La commande kill permet de lister les signaux disponibles: 
 + 
 +<code bash> 
 +kill -s 
 +</code> 
 + 
 +Ci dessous la description de quelques signaux usuels: 
 + 
 +^ Signal ^ numéro ^ description | 
 +| STOP   | 19     | pour stopper ou arrêter provisoirement un processus. | 
 +| CONT   | 18     | pour remettre en exécution un processus stoppé. | 
 +| TERM   | 15     | Pour terminer un processus avec fermeture normale de ses fichiers. Ce signal peut être ignoré par certain processus. C’est le signal par défaut de la commande kill. | 
 +| KILL   | 9      | pour terminer brutalement et immédiatement un processus en toutes circonstances. | 
 +| INT    | 2      | Pour interrompre un processus. 
 +| QUIT   | 3      | Pour interrompre un processus en créant une image du processus à l’instant de l’interruption. Cette image peut être utilisable par la suite avec une application de débogage. | 
 +| HUP    | 1      | (hangup) pour demander à un processus démarré par le système de relire ses fichiers de configuration. | 
  
 ==== Arrêter un processus ==== ==== Arrêter un processus ====
  
-La commande **kill** avec le signal **-9** permet de forcer l'arrêt d'un processus identifié par son PID. **killall** a le même effet mais le processus est désigné par le nom de son exécutable. **pkill** agit de la meme maniere mais fonctionne même avec un nom partiel (utilise les expression régulières)+La commande **kill** avec le signal **-9** permet de forcer l'arrêt d'un processus identifié par son PID. 
 + 
 +<note> 
 +Par défaut, la commande **kill** envoie le signal **SIGTERM** aux processus dont le PID est donné en argument. Si le signal SIGTERM est inopérant, il reste le signal SIGKILL pour supprimer à coup sûr le processus. Dans ce dernier cas cependant il y a un risque de perte de données non enregistrées sur le système de stockage. 
 +</note> 
 + 
 +**killall** a le même effet mais le processus est désigné par le nom de son exécutable. **pkill** agit de la même manière mais fonctionne même avec un nom partiel (utilise les expression régulières)
  
 <code bash> <code bash>
Ligne 86: Ligne 115:
 </code> </code>
  
-==== Les signaux ==== +==== Envoie de signaux ====
- +
-Les signaux sont envoyés par le système ou les commandes skill et kill* pour contrôler les processus: +
- +
-^ Signal ^ numéro ^ description | +
-| STOP   | 19     | Mettre un processus en pause | +
-| CONT   | 18     | Repasser un processus en execution | +
-| KILL   | 9      | Arrêt forcé du processus. |+
  
 Dans l'exemple ci-dessous, la première commande affiche le PID du shell courant. La commande pstree permet d'afficher l'arborescence des processus. On choisit ici de contrôler l'exécution du processus 4489 ne dépendant pas du shell courant. Dans l'exemple ci-dessous, la première commande affiche le PID du shell courant. La commande pstree permet d'afficher l'arborescence des processus. On choisit ici de contrôler l'exécution du processus 4489 ne dépendant pas du shell courant.
Ligne 127: Ligne 149:
 yoann@janus:~$ yoann@janus:~$
 </code> </code>
-Le processus 4489 est bien arrêté après reception du signal STOP (état T affiché par ''**ps**'') puis revient bien en état execution en sommeil apres reception du signal CONT (état S affiché par ''**ps**'').+Le processus 4489 est bien arrêté après réception du signal STOP (état T affiché par ''**ps**'') puis revient bien en état exécution en sommeil après réception du signal CONT (état S affiché par ''**ps**'').
  
 +==== Contrôle de la priorité ====
  
 +La commande **nice** permet de gérer la priorité d'exécution associée à un processus. La plage de valeur nice est comprise entre [-20,19] **une valeur basse correspond à une priorité élevée**.
  
 +<code bash>
 +# baisser la priorité d’exécution de la commande tail
 +nice -n 15 tail -f /var/log/
 +</code>
 +
 +<code bash>
 +$ ps -l
 +F S   UID     PID    PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
 +0 S  1000    2468    2460  0  80   0 -  3583 do_wai pts/0    00:00:00 bash
 +0 T  1000    4715    2468  0  95  15 -  2667 do_sig pts/0    00:00:00 tail
 +4 R  1000    4737    2468  0  80   0 -  3515 -      pts/0    00:00:00 ps
 +</code>
 ===== Continuer l'exécution d'un processus après déconnexion ===== ===== Continuer l'exécution d'un processus après déconnexion =====
  
sysadmin/linux/gestion-processus.1616701672.txt.gz · Dernière modification : 2021/03/25 19:47 de 93.28.24.141