[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

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
Prochaine révisionLes deux révisions suivantes
fr:slackbook:process_control [2012/11/30 03:34 (UTC)] – [ps] ellendhelfr:slackbook:process_control [2012/12/16 22:57 (UTC)] – [top] Initial translation ellendhel
Ligne 5: Ligne 5:
 ===== ps ===== ===== ps =====
  
-La première étape dans la gestion des processus est de savoir quels sont en cours d'exécution. L'outil le plus populaire et le plus puissant pour cela est //**ps**//(1). Lancé sans argument, //**ps**// ne vous donnera pas beaucoup d'information. Par défaut, il vous dira quels sont les processus en exécution dans votre shell actif. si nous souhaitons plus d'information, il faudra regarder plus en détails.+La première étape dans la gestion des processus est de savoir quels sont en cours d'exécution. L'outil le plus populaire et le plus puissant pour cela est //**ps**//(1). Lancé sans argument, //**ps**// ne vous donnera pas beaucoup d'information. Par défaut, il vous dira quels sont les processus en exécution dans votre shell actif. Si nous souhaitons plus d'information, il faudra regarder plus en détails.
  
 <code> <code>
Ligne 14: Ligne 14:
 </code> </code>
  
-Vous pouvez vous ici quels processus sont exécutés dans votre shell courant ou votre terminal et peu d'informations sont données. Le PID est le "//Process ID//" (identifiant de processus) ; chaque processus reçoit un numéro unique. Le TTY vous indique à quel terminal le processus est attaché. Vous serez peut-être un peu désorienté par la colonne TIME, qui semble se déplacer lentement. Ce n'est pas le temps écoulé pendant lequel le processus s'est exécuté, mais la quantité de temps CPU que le processus à utilisé. Un processus au repos (//idle//) n'utilise virtuellement aucun temps CPU, c'est pourquoi la valeur n'augmente pas très vite.+Vous pouvez voir ici quels processus sont exécutés dans votre shell courant ou votre terminal et peu d'informations sont données. Le PID est le "//Process ID//" (identifiant de processus) ; chaque processus reçoit un numéro unique. Le TTY vous indique à quel terminal le processus est attaché. Vous serez peut-être un peu désorienté par la colonne TIME, qui semble se déplacer lentement. Ce n'est pas le temps écoulé pendant lequel le processus s'est exécuté, mais la quantité de temps CPU que le processus utilisé. Un processus au repos (//idle//) n'utilise virtuellement aucun temps CPU, c'est pourquoi la valeur n'augmente pas très vite.
  
 Visualiser uniquement ses propres processus n'est pas très amusant, jetons donc un œil sur tous les processus du système avec l'option //-e//. Visualiser uniquement ses propres processus n'est pas très amusant, jetons donc un œil sur tous les processus du système avec l'option //-e//.
Ligne 37: Ligne 37:
  
 <note> <note>
-Ceci est différent de l'option //-aux//, mais dans les plupart des cas, les deux options sont équivalentes. C'est une relique d'il y a quelques dizaines d'années. Pour pour d'information, lisez la page de manuel de //**ps**//.+Ceci est différent de l'option //-aux//, mais dans les plupart des cas, les deux options sont équivalentes. C'est une relique d'il y a quelques dizaines d'années. Pour plus d'information, lisez la page de manuel de //**ps**//.
 </note> </note>
  
Ligne 89: Ligne 89:
 <code> <code>
 darkstar:~$ ps -ejH darkstar:~$ ps -ejH
-... many lines omitted ...+... beaucoup de lignes supprimées ...
  3660  3660  3660 tty1     00:00:00   bash  3660  3660  3660 tty1     00:00:00   bash
 29947 29947  3660 tty1     00:00:00     startx 29947 29947  3660 tty1     00:00:00     startx
Ligne 127: Ligne 127:
 ===== kill et killall ===== ===== kill et killall =====
  
 +Gérer des processus ne limite pas à savoir quels sont actifs, mais également communiquer avec eux pour changer leur comportement. La façon la plus courante de gérer un programme est de le tuer. De fait, l'outil pour ce travail est nommé //**kill**//(1). Malgré son nom, //**kill**// ne tue pas les processus mais leur envoie un signal. Le signal le plus courant est SIGTERM, qui indique au processus de finir sa tâche en cours et de se terminer. Il existe une variété d'autres signaux qui peuvent être envoyés, mais les trois plus courant sont SIGTERM, SIGHUP et SIGKILL.
 +
 +La manière dont un processus réagit en recevant un signal peut varier. La plupart des programmes s'arrêteront (ou tenteront de s'arrêter) chaque fois qu'ils reçoivent un signal, mais il y a peu de de différences importantes. Pour commencer, le signal SIGTERM informe le processus qu'il doit s'arrêter dès que possible. Cela donne le temps au processus de finir ses actions importantes, tel qu'écrire des données sur le disque, avant de se fermer. Au contraire, le signal SIGKILL dit au programme de se terminer immédiatement, sans autre question. Ceci est particulièrement utile pour tuer les processus qui ne répondent plus et est parfois appelé la //balle d'argent//. Certains processus (en particulier des daemons) capturent le signal SIGHUP et rechargent leurs fichiers de configuration à chaque fois qu'ils le reçoivent.
 +
 +Afin d'envoyer un signal à un processus, la première chose dont nous avons besoin est son PID. Vous pouvez obtenir cela facilement avec //**ps**// comme cela à déjà présenté. Pour envoyer différents signaux à un processus actif, vous devez simplement passer le numéro de signal et //-s// en tant qu'option. L'option //-l// liste tous les signaux disponibles et leurs numéros. Vous pouvez également envoyer des signaux par leur nom avec //-s//.
 +
 +<code>
 +darkstar:~$ kill -l
 + 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
 + 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
 + 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
 +13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT
 +... many more lines omitted ...
 +darkstar:~$ kill 1234 # SIGTERM
 +darkstar:~$ kill -s 9 1234 # SIGKILL
 +darkstar:~$ kill -s 1 1234 # SIGHUP
 +darkstar:~$ kill -s HUP 1234 # SIGHUP
 +</code>
 +
 +Parfois, vous souhaiterez terminer tous les processus portant un certain nom. Vous pouvez tuer les processus par leur nom avec //**killall**//(1). Utilisez simplement les même options pour //**killall**// que celles que vous utiliseriez avec //**kill**//.
 +
 +<code>
 +darkstar:~$ killall bash # SIGTERM
 +darkstar:~$ killall -s 9 bash # SIGKILL
 +darkstar:~$ killall -s 1 bash # SIGHUP
 +darkstar:~$ killall -s HUP bash # SIGHUP
 +</code>
 ===== top ===== ===== top =====
 +
 +Jusqu'à maintenant nous avons appris comment voir quels sont les processus actifs à un moment donné, mais comment faire si nous voulons les surveiller pendant une période plus longue ? //**top**//(1) nous permet de faire cela. Il affiche une liste ordonnée des processus du système, avec leur informations essentielles, et la met à jour périodiquement. Par défaut, les processus sont triés par leur taux d'utilisation du CPU et les mises à jour se font toutes les trois secondes.
 +
 +<code>
 +darkstar:~$ top
 +top - 16:44:15 up 26 days,  5:53,  5 users,  load average: 0.08, 0.03, 0.03
 +Tasks: 122 total,   1 running, 119 sleeping,   0 stopped,   2 zombie
 +Cpu(s):  3.4%us,  0.7%sy,  0.0%ni, 95.5%id,  0.1%wa,  0.0%hi,  0.2%si, 0.0%st
 +Mem:   3058360k total,  2853780k used,   204580k free,   154956k buffers
 +Swap:        0k total,        0k used,        0k free,  2082652k cached
 +
 +  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
 +    1 root      20    3928  632  544 S    0  0.0   0:00.99 init               
 +    2 root      15  -5        0    0 S    0  0.0   0:00.00 kthreadd           
 +    3 root      RT  -5        0    0 S    0  0.0   0:00.82 migration/       
 +    4 root      15  -5        0    0 S    0  0.0   0:00.01 ksoftirqd/       
 +    7 root      15  -5        0    0 S    0  0.0   0:11.22 events/          
 +    9 root      15  -5        0    0 S    0  0.0   0:01.19 work_on_cpu/     
 +   11 root      15  -5        0    0 S    0  0.0   0:00.01 khelper            
 +  102 root      15  -5        0    0 S    0  0.0   0:02.04 kblockd/         
 +  105 root      15  -5        0    0 S    0  0.0   1:20.08 kacpid             
 +  106 root      15  -5        0    0 S    0  0.0   0:01.92 kacpi_notify       
 +  175 root      15  -5        0    0 S    0  0.0   0:00.00 ata/0              
 +  177 root      15  -5        0    0 S    0  0.0   0:00.00 ata_aux            
 +  178 root      15  -5        0    0 S    0  0.0   0:00.00 ksuspend_usbd      
 +  184 root      15  -5        0    0 S    0  0.0   0:00.02 khubd              
 +  187 root      15  -5        0    0 S    0  0.0   0:00.00 kseriod            
 +  242 root      20          0    0 S    0  0.0   0:03.37 pdflush            
 +  243 root      15  -5        0    0 S    0  0.0   0:02.65 kswapd0
 +</code>
 +
 +La page de manuel comporte des détails pratiques sur comment interagir avec //**top**// tel que modifier l'intervalle de rafraîchissement, la manière dont les processus sont triés ou même comment tuer un processus directement depuis //**top**//.
  
 ===== cron ===== ===== cron =====
 fr:slackbook:process_control ()