<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Contrôler la priorité des processus : nice, renice</title><meta name="generator" content="DocBook XSL Stylesheets V1.64.0"><link rel="home" href="index.html" title="Manuel de référence"><link rel="up" href="process-control.html" title="Chapitre 6. Contrôle des processus"><link rel="previous" href="process-signals.html" title="Envoyer des signaux aux processus : kill, killall, top"><link rel="next" href="ref-linux-depth.html" title="Linux en profondeur"></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">Contrôler la priorité des processus : nice, renice</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="process-signals.html">Précédent</a> </td><th width="60%" align="center">Chapitre 6. Contrôle des processus</th><td width="20%" align="right"> <a accesskey="n" href="ref-linux-depth.html">Suivant</a></td></tr></table><hr></div><div class="sect1" lang="fr"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="process-priority"></a>Contrôler la priorité des processus : nice, renice</h2></div></div><div></div></div><p><a name="BId-process-control-pa24"></a>Chaque processus actif sur le système s'exécute avec une priorité donnée (aussi appelée valeur amicale ou <span class="foreignphrase"><i class="foreignphrase">nice value</i></span> en anglais). Cette valeur peut varier de -20 à +20. La priorité maximale pour un processus est -20. Si elle n'est pas définie, tous les processus s'exécute avec une priorité de 0 par défaut (la priorité de planification de « <span class="quote">base</span> »). Les processus ayant la priorité maximale utilisent plus de ressources système que les autres. Les processus ayant une priorité inférieure s'exécuteront lorsque le système sera libéré par les tâches de priorité plus élevée. Les utilisateurs autres que le super-utilisateur <tt class="literal">root</tt> ne pourront que diminuer la priorité de leurs processus dans la fourchette 0 à 20. Le super-utilisateur pourra quant à lui définir de manière arbitraire la priorité de n'importe quel processus.</p><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="id2549826"></a>renice</h3></div></div><div></div></div><p><a name="BId-process-control-pa25"></a>Si un ou plusieurs processus prennent d'assaut toutes les ressources du système, vous pouvez changer leur priorité au lieu de les tuer. On utilise alors la commande <span><b class="command">renice</b></span>. Sa syntaxe est la suivante : <a name="BId-process-control-sc7"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">renice priorité [[-p] pid ...] [[-g] pgrp ...] [[-u] utilisateur ...]</pre></td></tr></table><p> La <tt class="literal">priorité</tt> équivaut à la valeur numérique de la priorité, <span class="acronym">PID</span> (précédé de <tt class="option">-p</tt> pour une liste de PID) représente l'<span class="acronym">ID</span> du processus, <tt class="literal">pgrp</tt> indique (<tt class="option">-g</tt> pour plusieurs) l'<span class="acronym">ID</span> du groupe du processus, et <tt class="literal">utilisateur</tt> (ou <tt class="option">-u</tt> pour plusieurs utilisateurs) représente le nom d'utilisateur du propriétaire du processus.</p><p><a name="BId-process-control-pa26"></a>Supposons que vous veniez de lancer un processus auquel a été attribué le numéro <span class="acronym">PID</span> 785, lequel lance une longue opération scientifique, et que vous souhaitiez jouer à un jeu pendant que ce processus tourne. Vous tapez alors : <a name="BId-process-control-sc8"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ renice +15 785 </pre></td></tr></table><p> Ainsi, le processus durera sans doute plus longtemps, mais il ne vous empêchera pas de profiter d'une animation fluide pour votre jeu en laissant la priorité au jeu lorsqu'il en a besoin.</p><p><a name="BId-process-control-pa27"></a>Si vous êtes l'administrateur d'un système partagé et constatez qu'un des utilisateurs lance beaucoup de processus accaparant les ressources du système, vous pouvez changer la priorité de tous les processus de cet utilisateur avec la commande : <a name="BId-process-control-sc9"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen"># renice +20 -u pierre</pre></td></tr></table><p> Après cela, tous les processus de <tt class="literal">pierre</tt> auront une priorité plus basse et ne bloqueront pas les processus des autres utilisateurs.</p></div><div class="sect2" lang="fr"><div class="titlepage"><div><div><h3 class="title"><a name="id2549995"></a>nice</h3></div></div><div></div></div><p><a name="BId-process-control-pa28"></a>Maintenant que vous savez que vous pouvez changer la priorité des processus, vous voudrez peut-être lancer une commande avec une priorité prédéfinie. Cela s'accomplit grâce à la commande <span><b class="command">nice</b></span>.</p><p><a name="BId-process-control-pa29"></a>Il suffit de placer votre commande en argument de la commande <span><b class="command">nice</b></span>. Par défaut, <span><b class="command">nice</b></span> assigne une priorité de 10. Vous pouvez utiliser l'option <tt class="option">-n</tt> pour assigner une priorité quelconque dans la fourchette -20 (priorité maximale) à 19 (priorité minimale).</p><p><a name="BId-process-control-pa30"></a>Par exemple, si vous souhaitez créer une image <span class="acronym">ISO</span> à partir du <span class="acronym">CD-ROM</span> d'installation de <span class="application">Mandrakelinux</span>, vous utilisez d'habitude : <a name="BId-process-control-sc10"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ dd if=/dev/cdrom of=~/mdk1.iso</pre></td></tr></table><p> Mais sur certains systèmes avec un lecteur <span class="acronym">CD-ROM</span> <span class="acronym">IDE</span> standard, le fait de copier de grands volumes de données peut utiliser énormément de ressources. Afin que cela n'empêche pas les autres personnes ou processus de fonctionner correctement, on peut démarrer le processus de copie avec une priorité affaiblie : <a name="BId-process-control-sc11"></a></p><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ nice -n 19 dd if=/dev/cdrom of=~/mdk1.iso</pre></td></tr></table><p> et continuer avec d'autres tâches courantes.</p><p><a name="BId-process-control-pa31"></a>Pour modifier la priorité d'un processus, vous pouvez aussi utiliser l'utilitaire <span><b class="command">top</b></span> susmentionné. Utilisez la commande <span><b class="keycap">r</b></span> depuis l'interface de <span><b class="command">top</b></span> pour changer la priorité du processus sélectionné.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="process-signals.html">Précédent</a> </td><td width="20%" align="center"><a accesskey="u" href="process-control.html">Niveau supérieur</a></td><td width="40%" align="right"> <a accesskey="n" href="ref-linux-depth.html">Suivant</a></td></tr><tr><td width="40%" align="left" valign="top">Envoyer des signaux aux processus : kill, killall, top </td><td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td><td width="40%" align="right" valign="top"> Linux en profondeur</td></tr></table></div></body></html>