<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Inicio y manipulación de procesos en segundo plano: el control de los jobs</title><meta name="generator" content="DocBook XSL Stylesheets V1.64.0"><link rel="home" href="index.html" title="Guía de Referencia"><link rel="up" href="cmdline.html" title="Capítulo 3. Introducción a la Línea de comandos"><link rel="previous" href="cmdline-completion.html" title="El completado de la línea de comandos"><link rel="next" href="cmdline-end.html" title="Una palabra final"></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">Inicio y manipulación de procesos en segundo plano: el control de los jobs</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="cmdline-completion.html">Anterior</a> </td><th width="60%" align="center">Capítulo 3. Introducción a la Línea de comandos</th><td width="20%" align="right"> <a accesskey="n" href="cmdline-end.html">Siguiente</a></td></tr></table><hr></div><div class="sect1" lang="es"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cmdline-job"></a>Inicio y manipulación de procesos en segundo plano: el control de los jobs</h2></div></div><div></div></div><p><a name="BId-cmdline-pa110"></a>Usted debe haber notado que cuando ingresa un comando desde una <tt class="systemitem">Terminal</tt>, normalmente tiene que esperar a que el comando termine antes que el shell le devuelva el control. Esto significa que Usted envió el comando en <a name="BId-cmdline-gt7" href="glossary.html#term-foreground"><i class="glossterm">primer plano</i></a>. Sin embargo, hay ocasiones donde esto no es deseable.</p><p><a name="BId-cmdline-pa111"></a>Suponga, por ejemplo, que Usted decidió copiar recursivamente un directorio grande a otro. Usted también decidió ignorar los errores, por lo que redirecciona el canal de error a <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 imagenes/ /shared/ 2>/dev/null </pre></td></tr></table><p><a name="BId-cmdline-pa112"></a>Un comando como ese puede tardar varios minutos para terminar su ejecución por completo. Entonces, Usted tiene dos soluciones: la primera es violenta y significa detener (terminar) el comando y volver a hacerlo más tarde cuando tenga el tiempo. Para hacer esto, ingrese <b class="userinput"><tt>Ctrl+c</tt></b>: esto le devolverá el <span class="foreignphrase"><i class="foreignphrase">prompt</i></span>. Pero espere, ¡no lo haga! Siga leyendo.</p><p><a name="BId-cmdline-pa113"></a><a class="indexterm" name="BId-cmdline-it50"></a> Suponga que Usted quiere ejecutar el comando mientras hace otra cosa al mismo tiempo. Entonces, la solución es poner al proceso en <a name="BId-cmdline-gt8" href="glossary.html#term-background"><i class="glossterm">segundo plano</i></a>. Para hacer esto, ingrese <b class="userinput"><tt>Ctrl+z</tt></b> para suspender al proceso:</p><a name="BId-cmdline-sc27"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen"> $ cp imagenes/ shared/ 2>/dev/null # Teclee C-z aquí [1]+ Stopped cp -R imagenes/ /shared/ 2>/dev/null </pre></td></tr></table><p><a name="BId-cmdline-pa114"></a>y aquí está, de nuevo en el <span class="foreignphrase"><i class="foreignphrase">prompt</i></span>. El proceso está entonces suspendido, esperando que Usted lo vuelva a iniciar (como muestra la palabra clave <tt class="literal">Stopped</tt>, detenido). Eso, por supuesto, es lo que Usted quiere hacer, pero en segundo plano. Ingrese <span><b class="command">bg</b></span> (por <span class="foreignphrase"><i class="foreignphrase">BackGround</i></span>, segundo plano) para obtener el resultado deseado:</p><a name="BId-cmdline-sc28"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen"> $ bg [1]+ cp -R imagenes/ shared/ 2>/dev/null & </pre></td></tr></table><p><a name="BId-cmdline-pa115"></a>Entonces, el proceso comenzará a ejecutar nuevamente como una tarea en segundo plano, como lo indica el signo <tt class="literal">&</tt> (ampersand) al final de la línea. Usted volverá al <span class="foreignphrase"><i class="foreignphrase">prompt</i></span> y podrá continuar trabajando. Un proceso que corre como tarea en el fondo, o en segundo plano, se denomina <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>Por supuesto, Usted puede iniciar procesos directamente como tareas en segundo plano, precisamente agregando un caracter <span><b class="keycap">&</b></span> al final del comando. Por ejemplo, Usted puede iniciar el comando para copiar el directorio en segundo plano escribiendo:</p><a name="BId-cmdline-sc29"></a><table border="0" bgcolor="#E0E0E0"><tr><td><pre class="screen"> cp -R imagenes/ /shared/ 2>/dev/null & </pre></td></tr></table><p><a name="BId-cmdline-pa117"></a>Si Usted lo desea, también puede volver este proceso a un primer plano y esperar a que termine ingresando <span><b class="command">fg</b></span> (<span class="foreignphrase"><i class="foreignphrase">ForeGround</i></span>, primer plano) Para volverlo al segundo plano, ingrese la secuencia <b class="userinput"><tt>Ctrl+z</tt></b>, <span><b class="command">bg</b></span>.</p><p><a name="BId-cmdline-pa118"></a>Usted puede iniciar varios <span class="foreignphrase"><i class="foreignphrase">jobs</i></span> de esta forma: entonces, se asignará un número de <span class="foreignphrase"><i class="foreignphrase">job</i></span> a cada comando. El comando <span><b class="command">jobs</b></span> del shell lista todos los <span class="foreignphrase"><i class="foreignphrase">jobs</i></span> asociados al shell corriente. El <span class="foreignphrase"><i class="foreignphrase">job</i></span> precedido por un signo <tt class="literal">+</tt> indica el último proceso iniciado como tarea de segundo plano. Para pasar a un <span class="foreignphrase"><i class="foreignphrase">job</i></span> en particular al primer plano, Usted puede ingresar <span><b class="command">fg <n></b></span> donde <tt class="option"><n></tt> es el número de <span class="foreignphrase"><i class="foreignphrase">job</i></span>, por ejemplo, <span><b class="command">fg 5</b></span>.</p><p><a name="BId-cmdline-pa119"></a>Note que Usted también puede suspender o lanzar aplicaciones de <a name="BId-cmdline-gt10" href="glossary.html#term-full-screen"><i class="glossterm">pantalla completa</i></a> (si es que están programadas correctamente) de esta forma, tales como <span><b class="command">less</b></span> o un editor de texto como <span class="application">Vi</span>, y pasarlos al primer plano cuando Usted lo desee.</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">Anterior</a> </td><td width="20%" align="center"><a accesskey="u" href="cmdline.html">Subir</a></td><td width="40%" align="right"> <a accesskey="n" href="cmdline-end.html">Siguiente</a></td></tr><tr><td width="40%" align="left" valign="top">El completado de la línea de comandos </td><td width="20%" align="center"><a accesskey="h" href="index.html">Inicio</a></td><td width="40%" align="right" valign="top"> Una palabra final</td></tr></table></div></body></html>