{"id":208,"date":"2023-08-31T11:54:09","date_gmt":"2023-08-31T09:54:09","guid":{"rendered":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/?page_id=208"},"modified":"2025-03-07T17:28:35","modified_gmt":"2025-03-07T15:28:35","slug":"1-10-4-gestion-de-procesos-en-segundo-plano-y-primer-plano","status":"publish","type":"page","link":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/1-10-4-gestion-de-procesos-en-segundo-plano-y-primer-plano\/","title":{"rendered":"1.10.4. Gesti\u00f3n de procesos en segundo plano y primer plano"},"content":{"rendered":"<p>Si est\u00e1is trabajando con Gnu\/Linux a trav\u00e9s de una red o desde un terminal con una pantalla que solo permite entrada de texto sin soporte gr\u00e1fico, es posible que solo teng\u00e1is acceso a la <em>shell<\/em>. Si est\u00e1is acostumbrados a trabajar en un entorno gr\u00e1fico en el que puedes tener varios programas abiertos al mismo tiempo y cambiar entre ellos, la interfaz de la <em>shell<\/em> puede parecer limitada.<\/p>\n<p>Sin embargo, aunque la <em>shell bash<\/em> no tiene una interfaz gr\u00e1fica para ejecutar varios programas al mismo tiempo, s\u00ed permite mover los programas activos entre el fondo y el primer plano. Esto permite tener varios procesos en ejecuci\u00f3n y seleccionar el que queremos manejar en ese momento.<\/p>\n<p>Podemos poner un programa en segundo plano de varias maneras. Una forma es agregar el s\u00edmbolo <code>&amp;<\/code> al final de la l\u00ednea de comando cuando lo ejecutamos por primera vez o podemos usar el comando <code>at<\/code> para ejecutar comandos de manera que no est\u00e9n conectados a la <em>shell<\/em>.<\/p>\n<p>Para detener un comando en ejecuci\u00f3n y ponerlo en segundo plano, presionad Ctrl+Z. Despu\u00e9s de detener el comando, pod\u00e9is volver a ejecutarlo en primer plano con el comando <code>fg<\/code> o iniciarlo en segundo plano con el comando <code>bg<\/code>. Es importante tener en cuenta que cualquier comando en ejecuci\u00f3n en segundo plano puede generar salida durante los comandos que ejecut\u00e9is posteriormente desde esa <em>shell<\/em>. Por ejemplo, si aparece salida de un comando en segundo plano durante una sesi\u00f3n de <em>vi<\/em>, simplemente presionad Ctrl+L para refrescar la pantalla y deshaceros de la salida.<\/p>\n<p>Si ten\u00e9is programas que dese\u00e1is ejecutar mientras continu\u00e1is trabajando en la <em>shell<\/em>, pod\u00e9is colocar los programas en segundo plano. Para colocar un programa en segundo plano en el momento en que se ejecuta el programa, escribid un <em>ampersand<\/em> (<code>&amp;<\/code>) al final de la l\u00ednea de comando, as\u00ed:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ find \/usr &gt; \/tmp\/fichero-usuarios &amp;<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">[3] 15971<\/pre>\n<p>Este ejemplo de comando encuentra todos los archivos en el sistema Gnu\/Linux (a partir de \/usr), imprime esos nombres de archivo y los coloca en el archivo \/tmp\/fichero-usuarios. El <em>ampersand<\/em> (&amp;) ejecuta esa l\u00ednea de comando en segundo plano. Observad que se muestra el n\u00famero de trabajo [3] y el n\u00famero de identificaci\u00f3n de proceso, 15971, cuando se lanza el comando. Para comprobar qu\u00e9 comandos ten\u00e9is en ejecuci\u00f3n en segundo plano, usad el comando <code>jobs<\/code>, as\u00ed:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ jobs<\/pre>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">[1] Stopped (tty output) vi \/tmp\/unficherocualquiera\r\n\r\n[2] Running find \/usr -print &gt; \/tmp\/allusrfiles &amp;\r\n\r\n[3] Running nroff -man \/usr\/man2\/* &gt;\/tmp\/man2 &amp;\r\n\r\n[4]- Running nroff -man \/usr\/man3\/* &gt;\/tmp\/man3 &amp;\r\n\r\n[5]+ Stopped nroff -man \/usr\/man4\/* &gt;\/tmp\/man4<\/pre>\n<p>Se pueden traer cualquiera de los comandos de la lista de trabajos al primer plano. Para hacer referencia a un trabajo en segundo plano (para cancelarlo o llevarlo al primer plano), usad un signo de porcentaje (<code>%<\/code>) seguido del n\u00famero de trabajo. Para editar el archivo <em>unficherocualquiera<\/em> nuevamente, escribid:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ fg %1<\/pre>\n<p>Como resultado, el comando <em>vi<\/em> y el terminal que lo contiene se abre de nuevo. Todo el texto es como estaba cuando detuvisteis el trabajo de <em>vi<\/em>. Antes de poner un procesador de texto, un procesador de palabras u otro programa similar en segundo plano, aseg\u00faraos de guardar vuestro archivo. Es f\u00e1cil olvidar que tenemos un programa en segundo plano y perder\u00edais vuestros datos si cerr\u00e1is la sesi\u00f3n o reinici\u00e1is el ordenador.<\/p>\n<p>Si un comando se detiene, puedes hacer que se ejecute de nuevo en segundo plano utilizando el comando <code>bg<\/code>. Por ejemplo, tomad el trabajo n\u00famero 5 de la lista de trabajos del ejemplo anterior. Escribid lo siguiente:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"mowtwo\">$ bg %5<\/pre>\n<p>Despu\u00e9s de eso, el trabajo se ejecutar\u00e1 en segundo plano. Su entrada en la lista de trabajos aparecer\u00e1 as\u00ed:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"raw\" data-enlighter-theme=\"droide\">[5] Running nroff -man man4\/* &gt;\/tmp\/man4 &amp;<\/pre>\n<div id=\"gtx-trans\" style=\"position: absolute; left: 473px; top: 1280px;\">\n<div class=\"gtx-trans-icon\"><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Si est\u00e1is trabajando con Gnu\/Linux a trav\u00e9s de una red o desde un terminal con una pantalla que solo permite entrada de texto sin soporte gr\u00e1fico, es posible que solo teng\u00e1is acceso a la shell. Si est\u00e1is acostumbrados a trabajar en un entorno gr\u00e1fico en el que puedes tener varios programas abiertos al mismo tiempo [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"acf":[],"_links":{"self":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages\/208"}],"collection":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/comments?post=208"}],"version-history":[{"count":8,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages\/208\/revisions"}],"predecessor-version":[{"id":1302,"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/pages\/208\/revisions\/1302"}],"wp:attachment":[{"href":"http:\/\/eines-informatiques.recursos.uoc.edu\/introduccion-a-los-entornos-de-trabajo-gnu-linux\/es\/wp-json\/wp\/v2\/media?parent=208"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}