<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>19.2. Manipulation des processus</title> <link rel="stylesheet" href="images/mdk-doc.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets V1.73.2"> <link rel="start" href="index.html" title="Maîtriser Mandriva Linux"> <link rel="up" href="cmdline-intro-chapter.html" title="Chapitre 19. Introduction à la ligne de commande"> <link rel="prev" href="cmdline-file.html" title="19.1. Manipulation de fichiers"> <link rel="next" href="cmdline-doc.html" title="19.3. Documentation sur les commandes"> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr> <th colspan="3" align="center">19.2. Manipulation des processus </th> </tr> <tr> <td width="20%" align="left"><a accesskey="p" href="cmdline-file.html">Précédent</a> </td> <th width="60%" align="center">Chapitre 19. Introduction à la ligne de commande </th> <td width="20%" align="right"> <a accesskey="n" href="cmdline-doc.html">Suivant</a></td> </tr> </table> <hr> </div> <div class="section" lang="fr"> <div class="titlepage"> <div> <div> <h2 class="title" style="clear: both"><a name="cmdline-process"></a>19.2. Manipulation des processus </h2> </div> </div> </div> <p><a name="BIdNEW-cmdline-intro-chapter-pa147"></a>Du point de vue du système, les applications s'exécutent en un ou plusieurs processus, consommant des ressources systèmes, telles que la mémoire ou du temps processeur. Nous présentons quelques commandes pour superviser et gérer les processus, et par conséquent les applications auxquels ils appartiennent. </p> <div class="section" lang="fr"> <div class="titlepage"> <div> <div> <h3 class="title"><a name="d5e11052"></a>19.2.1. S'informer sur les processus </h3> </div> </div> </div> <p><a name="BId-process-control-pa5"></a><a class="indexterm" name="BIdNEW-process-control-it2"></a> La commande <span class="command"><strong>ps</strong></span> affiche une liste des processus existants sur le système, selon les critères que vous voulez. </p> <p><a name="BId-process-control-pa6"></a>Si la commande <span class="command"><strong>ps</strong></span> est lancée sans argument, seuls les processus dont vous êtes l'initiateur et qui sont rattachés au terminal que vous utilisez seront affichés : </p> <a name="BId-process-control-sc1"></a><pre class="screen">$ ps PID TTY TIME CMD 18614 pts/3 00:00:00 bash 20173 pts/3 00:00:00 ps</pre> <p><a name="BId-process-control-pa8"></a>Voici ses options les plus communes : </p> <div class="itemizedlist"> <ul type="disc"> <li> <p><a name="BId-process-control-pa9"></a><code class="option">a</code> : affiche les processus lancés par tous les utilisateurs ; </p> </li> <li> <p><a name="BId-process-control-pa10"></a><code class="option">x </code>: affiche les processus lancés depuis n'importe quel terminal, et pas seulement le vôtre (ou même ceux n'ayant pas de terminal du tout); </p> </li> <li> <p><a name="BId-process-control-pa11"></a><code class="option">u</code> : affiche pour chaque processus le nom de l'utilisateur qui l'a lancé et l'heure de son lancement. </p> </li> </ul> </div> </div> <div class="section" lang="fr"> <div class="titlepage"> <div> <div> <h3 class="title"><a name="d5e11075"></a>19.2.2. Contrôler les processus </h3> </div> </div> </div> <p><a name="BId-process-control-pa15"></a><a class="indexterm" name="BIdNEW-process-control-it3"></a> Les processus sont contrôlés par des signaux. Les commandes <span class="command"><strong>kill</strong></span> et <span class="command"><strong>killall</strong></span> sont utilisées pour envoyer des signaux aux processus. La commande <span class="command"><strong>kill</strong></span> attend un numéro de processus en argument, tandis que la commande <span class="command"><strong>killall</strong></span> attend un nom de processus. </p> <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"> <table border="0" summary="Note"> <tr> <td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td> <th align="left">Note</th> </tr> <tr> <td align="left" valign="top"> <p><a name="BIdNEW-cmdline-intro-chapter-pa148"></a>Gardez à l'esprit que les processus réagissent différemment aux mêmes signaux. Quand vous envoyez un signal à un processus, vous ne pouvez donc pas vous attendre <span class="foreignphrase"><em class="foreignphrase">a priori</em></span>à ce qu'il se comporte comme vous l'aviez pensé . </p> </td> </tr> </table> </div> <a name="BIdNEW-cmdline-intro-chapter-sy7"></a><pre class="synopsis">kill <numéro_de_processus_></pre> <a name="BIdNEW-cmdline-intro-chapter-sy8"></a><pre class="synopsis">killall <nom_de_processus_></pre> <p><a name="BIdNEW-cmdline-intro-chapter-pa149"></a>Les signaux peuvent être spécifiés par un nombre ou par un nom. Exécutez la commande <span class="command"><strong>kill -l</strong></span> pour voir la liste des signaux disponibles. Les plus fréquemment utilisés sont : </p> <div class="itemizedlist"> <ul type="disc"> <li> <p><a name="BIdNEW-cmdline-intro-chapter-pa150"></a><code class="literal">TERM</code> ou <code class="literal">15</code> : c'est le signal envoyé par défaut quand le nom ou le numéro du signal est omis. Il termine le processus élégamment. </p> </li> <li> <p><a name="BIdNEW-cmdline-intro-chapter-pa151"></a><code class="literal">STOP</code> ou <code class="literal">19</code> : ce signal est utilisé pour suspendre un processus. Envoyez le signal <code class="literal">CONT</code> ou <code class="literal">18</code> pour reprendre un processus suspendu. </p> </li> <li> <p><a name="BIdNEW-cmdline-intro-chapter-pa152"></a><code class="literal">KILL</code> ou <code class="literal">9</code> : ce signal est utilisé pour forcer l'arrêt d'un processus. Il est généralement utilisé pour terminer un processus qui ne répond plus (ou « <span class="quote">gelé</span> »). Il termine le processus brutalement. </p> </li> </ul> </div> <p><a name="BIdNEW-cmdline-intro-chapter-pa153"></a>Quelques exemples : </p> <div class="itemizedlist"> <ul type="disc"> <li> <p><a name="BIdNEW-cmdline-intro-chapter-pa154"></a><span class="command"><strong>kill 785</strong></span> : demande au processus identifié par le numéro <code class="literal">785</code> de terminer l'exécution, donnant ainsi la possibilité au processus d'effectuer toute opération de nettoyage nécessaire. ; </p> </li> <li> <p><a name="BIdNEW-cmdline-intro-chapter-pa155"></a><span class="command"><strong>kill -KILL 785</strong></span> : force l'arrêt du processus identifié par le numéro <code class="literal">785</code> sans laissé au processus la possibilité d'effectuer aucune opération de nettoyage. Le processus se termine immédiatement ; </p> </li> <li> <p><a name="BIdNEW-cmdline-intro-chapter-pa156"></a><span class="command"><strong>killall -TERM make</strong></span> : demande à tous les processus nommés <code class="literal">make</code> lancés par cet utilisateur de terminer l'exécution. </p> </li> </ul> </div> <p><a name="BIdNEW-process-control-pa35"></a>Quoi qu'il arrive, vous ne contrôlerez que vos propres processus, (sauf si vous êtes <code class="literal">root</code>), donc ne vous inquiétez pas des processus des autres utilisateurs puisqu'ils ne seront pas affectés. </p> </div> <div class="section" lang="fr"> <div class="titlepage"> <div> <div> <h3 class="title"><a name="d5e11126"></a>19.2.3. Mixer ps et kill: top </h3> </div> </div> </div> <p><a name="BId-process-control-pa17"></a><span class="command"><strong>top</strong></span> est un programme qui remplit à la fois les fonction de <span class="command"><strong>ps</strong></span> et <span class="command"><strong>kill</strong></span>. Il permet aussi de contrôler les processus en temps réel, en fournissant des informations sur l'usage de la mémoire, la <acronym class="acronym">CPU</acronym> le temps d'exécution. Voir <a class="xref" href="cmdline-process.html#top" title="Figure 19.1. Contrôler les processus avec top">Figure 19.1, « Contrôler les processus avec top »</a>. </p> <div class="figure"><a name="top"></a><p class="title"><b>Figure 19.1. Contrôler les processus avec top</b></p> <div class="figure-contents"> <div class="mediaobject" align="center"><img src="images/top.png" align="middle" alt="Contrôler les processus avec top"></div> </div> </div><br class="figure-break"> <p><a name="BId-process-control-pa18"></a><span class="command"><strong>top</strong></span> se contrôle à partir du clavier. Les commandes sont sensibles à la casse. Vous pouvez accéder à l'aide en tapant sur <span class="keycap"><strong>h</strong></span>. Voici quelques-une des commandes les plus utiles : </p> <div class="itemizedlist"> <ul type="disc"> <li> <p><a name="BId-process-control-pa19"></a><span class="keycap"><strong>k</strong></span> : envoie un signal à un processus. Vous devrez alors entrer le <acronym class="acronym">PID</acronym> du processus suivi du numéro ou du nom du signal à envoyer (<code class="literal">TERM</code> ou <code class="literal">15</code>, par défaut) ; </p> </li> <li> <p><a name="BId-process-control-pa20"></a><span class="keycap"><strong>M</strong></span> : trie par taux d'occupation mémoire (champ <code class="literal">%MEM</code>) ; </p> </li> <li> <p><a name="BId-process-control-pa21"></a><span class="keycap"><strong>P</strong></span> : trie les processus selon le temps <acronym class="acronym">CPU</acronym> qu'ils consomment (champ <code class="literal">%CPU</code>) : c'est le tri par défaut ; </p> </li> <li> <p><a name="BId-process-control-pa22"></a><span class="keycap"><strong>u</strong></span> : affiche les processus d'un utilisateur donné. Vous devrez alors entrer le <span class="emphasis"><em>nom</em></span> de l'utilisateur, et non son <acronym class="acronym">UID</acronym>. Si vous n'entrez aucun nom, tous les processus seront affichés ; </p> </li> <li> <p><a name="BId-process-control-pa23"></a><span class="keycap"><strong>i</strong></span> : par défaut, tous les processus, même endormis sont affichés. Cette commande fait en sorte que seuls les processus en cours d'exécution soient affichés. (processus dont le champ <code class="literal">STAT</code> indique <code class="literal">R</code>, <span class="foreignphrase"><em class="foreignphrase">Running</em></span> soit en cours d'exécution) mais pas les autres. Un nouvel appel à cette commande permettra de revenir à l'état antérieur. </p> </li> </ul> </div> </div> </div> <div class="navfooter"> <hr> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"><a accesskey="p" href="cmdline-file.html">Précédent</a> </td> <td width="20%" align="center"><a accesskey="u" href="cmdline-intro-chapter.html">Niveau supérieur</a></td> <td width="40%" align="right"> <a accesskey="n" href="cmdline-doc.html">Suivant</a></td> </tr> <tr> <td width="40%" align="left" valign="top">19.1. Manipulation de fichiers </td> <td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td> <td width="40%" align="right" valign="top"> 19.3. Documentation sur les commandes </td> </tr> </table> </div> </body> </html>