siguiente arriba anterior
Siguiente: Control de trabajos Arriba: Procesos y control de Anterior: Procesos y control de

Remitir trabajos

El modo usual de remitir un trabajo al sistema es confeccionar una línea de órdenes y pulsar la tecla de retorno. Las tareas así accionadas, se dice que se ejecutan en «primer plano», y una vez accionadas el shell no devuelve el control al usuario hasta que no se han completado los mandatos.

Existen otros modos de ejecutar trabajos al sistema:

Los procesos en trasfondo y emplazados se ejecutan con una prioridad ligeramente inferior, dado que no tienen requerimientos de E/S de terminal de usuario. Para los procesos en trasfondo la sintaxis es:

mandato & Envía un mandato a ejecutar en trasfondo

netscape & Despliega el visualizador de páginas Web en trasfondo
acroread x.pdf & Despliega el lector de documentos Acrobat en trasfondo

En esta tesitura, y bajo bash (Bourne Again Shell) y ksh (Korn Shell), es posible interrumpir un trabajo en ejecución mediante <^Z> y mandarlo a trasfondo mediante el mandato bg (background).

Más tarde podemos volver a traerlo a primer plano mediante el mandato fg

bg Manda a trasfondo el último trabajo «parado»
bg %# Manda a trasfondo el trabajo identificado por el número #.
fg Manda a primer plano el último trabajo enviado a trasfondo.
fg % Manda a primer plano el trabajo identificado con el número #.
jobs Muestra los trabajos que se están ejecutando en la sesión.

Para poder identificar los trabajos por su número necesitamos el mandato jobs.

Cuando queremos que un trabajo en trasfondo siga su ejecución aun cuando salgamos de la sesión, podemos utilizar el mandato nohup, lo que ocurre típicamente cuando tenemos la impresión de que este mandato no acabará antes de que nos despidamos de la sesión.7.1

nohup mandato & Envía un proceso a trasfondo aislándolo de la sesión.

Finalmente, se puede mandar ejecutar trabajos de modo «emplazado» con el mandato at, siempre y cuando el usuario tenga permiso para ello. La sintaxis simplificada del mandato es como sigue:

at -m -s -t tiempo Manda ejecutar en el momento indicado por tiempo los mandatos contenidos en archivo bajo el Bourne shell bash.
at -l Lista los trabajos enviados por el usuario bajo el mandato at.
at -r idTrabajo Borra el trabajo identificado por idTrabajo de la lista.

El at quedará a la espera de que introduzcamos el mandato que tiene que lanzar en el momento adecuado.

at -m 2pm next week
       sort < `ps -ef` > procesos.txt

at now + 1 hour <<!
     diff archivo1 archivo2 2>&1 >resultados | mailx pedro


siguiente arriba anterior
Siguiente: Control de trabajos Arriba: Procesos y control de Anterior: Procesos y control de
Cesar Llamas Bello 2001-01-09