<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Lancement et manipulation de processus en arrière-plan</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="cmdline.html" title="Chapitre 3. Introduction à la ligne de commande"><link rel="previous" href="cmdline-completion.html" title="Le complètement (completion) dans les lignes de commande"><link rel="next" href="cmdline-end.html" title="Le mot de la fin"></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">Lancement et manipulation de processus en arrière-plan</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="cmdline-completion.html">Précédent</a> </td><th width="60%" align="center">Chapitre 3. Introduction à la ligne de commande</th><td width="20%" align="right"> <a accesskey="n" href="cmdline-end.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="cmdline-job"></a>Lancement et manipulation de processus en arrière-plan</h2></div></div><div></div></div><p><a name="BId-cmdline-pa110"></a> Vous aurez remarqué que quand vous lancez une commande à partir d'un <tt class="systemitem">Terminal</tt>, vous devez normalement attendre que la commande soit terminée pour que le <span class="foreignphrase"><i class="foreignphrase">shell</i></span> vous rende la main : c'est que vous avez lancé la commande au <a name="BId-cmdline-gt7" href="glossary.html#term-foreground"><i class="glossterm">premier plan</i></a>. Il y a des situations, cependant, où cela n'est pas souhaitable. </p><p><a name="BId-cmdline-pa111"></a> Supposons, par exemple, que vous ayez entrepris de copier récursivement un gros répertoire vers un autre. Vous décidez également d'ignorer les erreurs, donc vous redirigez le canal d'erreur vers <tt class="filename">/dev/null</tt> : </p><a name="BId-cmdline-sc26"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">cp -R images/ /shared/ 2>/dev/null</pre></td></tr></table><p><a name="BId-cmdline-pa112"></a> Une telle commande peut prendre plusieurs minutes avant de se terminer. Vous disposez alors de deux solutions : la première, brutale, est d'interrompre (de « <span class="quote">tuer</span> ») la commande pour la relancer plus tard, quand vous aurez le temps. Pour ce faire, tapez <b class="userinput"><tt>Ctrl+c</tt></b> : cela terminera le processus et vous retournerez alors à l'invite. Mais attendez, ne faites pas ça ! Lisez ce qui suit. </p><p><a name="BId-cmdline-pa113"></a> <a class="indexterm" name="BId-cmdline-it50"></a> Supposons que vous vouliez exécuter une commande pendant que vous faites quelque chose d'autre. La solution est de placer le processus en <a name="BId-cmdline-gt8" href="glossary.html#term-background"><i class="glossterm">arrière-plan</i></a>. Pour ce faire, tapez d'abord <b class="userinput"><tt>Ctrl+z</tt></b> pour suspendre le processus : </p><a name="BId-cmdline-sc27"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ cp -R images/ /shared/ 2>/dev/null # Tapez Ctrl+z ici [1]+ Stopped cp -R images/ /shared/ 2>/dev/null $ </pre></td></tr></table><p><a name="BId-cmdline-pa114"></a> et vous voilà à nouveau devant l'invite. Le processus est alors suspendu, dans l'attente d'être relancé (comme l'indique le mot-clé <tt class="literal">Stopped</tt>, soit arrêté). Vous allez le relancer mais en le maintenant en arrière-plan. Tapez <span><b class="command">bg</b></span> (pour <span class="foreignphrase"><i class="foreignphrase">BackGround</i></span>, soit arrière-plan) provoquera exactement l'effet escompté : </p><a name="BId-cmdline-sc28"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">$ bg [1]+ cp -R images/ /shared/ 2>/dev/null & $ </pre></td></tr></table><p><a name="BId-cmdline-pa115"></a> Le processus aura alors repris son exécution en tâche de fond, ce qu'indique le signe <span><b class="keycap">&</b></span> (esperluette) à la fin de la ligne. Vous vous retrouvez alors en face de l'invite et pouvez continuer à travailler. Un processus qui tourne en tâche de fond, ou arrière-plan, est appelé un <a name="BId-cmdline-gt9" href="glossary.html#term-job"><i class="glossterm"> <span class="foreignphrase"><i class="foreignphrase">job</i></span> </i></a>. </p><p><a name="BId-cmdline-pa116"></a> Vous pouvez bien sûr lancer directement des processus en tâche de fond, justement en ajoutant une <span><b class="keycap">&</b></span> à la fin de la commande. Ainsi, vous pouvez lancer la copie du répertoire en arrière-plan en écrivant : </p><a name="BId-cmdline-sc29"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen">cp -R images/ /shared/ 2>/dev/null &</pre></td></tr></table><p><a name="BId-cmdline-pa117"></a> Si vous le souhaitez, vous pouvez également remettre ce processus au premier plan et attendre qu'il se termine en tapant <span><b class="command">fg</b></span> (pour <span class="foreignphrase"><i class="foreignphrase">ForeGround</i></span>, soit premier plan). Répétez alors la séquence <b class="userinput"><tt>Ctrl+z</tt></b>, <span><b class="command">bg</b></span> pour le remettre à l'arrière-plan. </p><p><a name="BId-cmdline-pa118"></a> Vous pouvez lancer plusieurs jobs de cette façon : chacune de ces commandes recevra alors un numéro de job. La commande <span><b class="command">jobs</b></span> du <span class="foreignphrase"><i class="foreignphrase">shell</i></span> indique la liste de tous les jobs associés au <span class="foreignphrase"><i class="foreignphrase">shell</i></span> courant. Le job précédé d'un signe <tt class="literal">+</tt> désigne le dernier processus mis en tâche de fond. Pour remettre un job en particulier au premier plan, vous pourrez alors taper <span><b class="command">fg <n></b></span> où <tt class="option"><n></tt> désigne le numéro de job, par exemple <span><b class="command">fg 5</b></span>. </p><p><a name="BId-cmdline-pa119"></a> Notez que vous pouvez également suspendre ou lancer de cette façon des applications <a name="BId-cmdline-gt10" href="glossary.html#term-full-screen"><i class="glossterm">plein écran</i></a> (si elles sont correctement programmées), telles que <span><b class="command">less</b></span> ou un éditeur de texte comme <span class="application">Vi</span>, et les remettre au premier plan quand vous le voulez. </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="cmdline-completion.html">Précédent</a> </td><td width="20%" align="center"><a accesskey="u" href="cmdline.html">Niveau supérieur</a></td><td width="40%" align="right"> <a accesskey="n" href="cmdline-end.html">Suivant</a></td></tr><tr><td width="40%" align="left" valign="top">Le complètement (completion) dans les lignes de commande </td><td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td><td width="40%" align="right" valign="top"> Le mot de la fin</td></tr></table></div></body></html>