Sunteți pe pagina 1din 16

UNIDAD 3: GESTION DE PROCESOS EN UNIX/LINUX 3.

1 Modos de Ejecucin de Procesos Foreground, Background (Intercambio) Muchas veces me he encontrado en la necesidad de utilizar una terminal en la que se est ejecutando un proceso, y por ello finalmente no poder usarla. La solucin para esto es pasar el proceso a background, de modo que nos libera la terminal, y podemos interactuar de nuevo con la mquina. Ojo! Si el proceso escupe texto, y no hemos redireccionado la salida estandar, nos saldrn los mensajes del proceso en la terminal, as que no te asustes si lo ves Para pasar el proceso a background: 1. Pulsa Control+Z. 2. Ejecuta el comando bg. 3. Puedes observar el estado de tus procesos con el comando jobs.

lpr -Pps23 part[1-8].ps ^Z Stopped bg [1] lpr -Pps23 interface.ps & jobs [1] Running lpr -Pps7 interface.ps Para volver a pasarlo a Foreground podemos usar el comando fg. Tambin es posible dejar un comando en background directamente al ejecutarlo, aadiendo el 3.2 Esquema de Ejecucin de Procesos. Tipos de Procesos carcter &. Puede entenderse por proceso todo programa o mandato en ejecucin. Un proceso tiene las siguientes caractersticas: lpr -Pps23 interface.ps &
Los procesos existen en una jerarqua de rbol (varios hijos, un slo padre). El sistema asigna un identificador de proceso (PID) nico al iniciar el proceso. Cada proceso almacena su identificador (PID) el de su proceso padre (PPID), el propietario y grupo del proceso y las variables de entorno. Tipos de procesos: Ejecucin en primer plano: proceso iniciado por el usuario o interactivo. Ejecucin en segundo plano: proceso no interactivo que no necesita ser iniciado por el usuario. Tiene una prioridad menor que un proceso interactivo. Procesos especiales:

Proceso servidor o demonio: proceso en 2 plano siempre disponible y que da servicio a varias tareas (debe ser propiedad del usuario root). Proceso zombi: proceso parado que queda en la tabla de procesos hasta que termine la ejecucin de su padre. Este hecho se produce cuando el proceso padre no recoge el cdigo de salida del proceso hijo. Proceso hurfano: proceso en ejecucin cuyo padre ha finalizado. El nuevo identificador de proceso padre (PPID) coincide con el identificador del proceso init (1). El mandato ps permite ver los procesos que estn activos en la mquina, pudiendo mostrar el identificador del proceso y del padre, el estado del proceso, su prioridad, desde qu terminal se ejecut, el nombre del propietario o el mandato que se ha ejecutado. Para ver los procesos que tenemos en ejecucin actualmente: $ ps PID TTY STAT TIME COMMAND 1273 1 2721 1 2738 1 S S 0:00 0:00 /bin/login -- ps -bash ps

R 0:00

3.3 Comunicacin Entre Procesos. Pipes, Semaforos, Seales - Pipes Ya hemos visto como usar sort como un filtro. Pero estos ejemplos suponen que tenemos los datos en un fichero en alguna parte o vamos a introducir los datos manualmente por la entrada estndar. Una tubera (pipe) es simplemente un mtodo de conexin que une la salida estndar de un proceso a la entrada estndar de otro Qu pasa si los datos que queremos ordenar provienen de la salida de otro comando, como ls?. Por ejemplo, usando la opcin -r con sort ordenaremos los datos en orden inverso. Si queremos listar los ficheros en el directorio actual en orden inverso, una forma podra ser. /home/larry/papers# ls english-list history-final masters-thesis

notes /home/larry/papers# ls > file-list /home/larry/papers# sort -r file-list notes masters-thesis history-final english-list

/home/larry/papers#
Aqu, salvamos la salida de ls en un fichero, y entonces ejecutamos sort -r sobre ese fichero. Pero esta forma necesita crear un fichero temporal en el que salvar los datos generados por ls. La solucin es usar las pipes. El uso de pipes es otra caracterstica del intrprete de comandos, que nos permite conectar una cadena de comandos en un "pipe", donde la stdout del primero es enviada directamente a la stdin del segundo y as sucesivamente. Queremos conectar la salida de ls con la entrada de sort. Para crear un pipe se usa el smbolo "|": /home/larry/papers# ls | sort -r notes masters-thesis history-final english-list /home/larry/papers#

Esta forma es ms corta y obviamente ms fcil de escribir. Otro ejemplo til, usando el comando /home/larry/papers# ls /usr/bin mostrar una lista larga de los ficheros, la mayora de los cuales pasara rpidamente ante nuestros ojos sin que podamos leerla. En lugar de esto, usemos more para mostrar la lista de ficheros en /usr/bin. /home/larry/papers# ls /usr/bin | more

Ahora podemos ir avanzando pgina a pgina cmodamente. Pero el potencial de los pipes no termina aqu. Podemos "entubar" ms de dos comandos a la vez. El comando head es un filtro que muestra la primeras lneas del canal de entrada (aqu la entrada desde una pipe). Si queremos ver el ltimo fichero del directorio actual en orden alfabtico, usaremos: /home/larry/papers# ls | sort -r | head -1 notes /home/larry/papers

- Semforos Un semforo es un mecanismo de comunicacin con el cual no se mueven datos, puesto que solo se puede consultar y modificar su valor al tener un carcter puramente informativo. Dijkstra define un semforo como una variable entera positiva o nula sobre la que slo se pueden realizar dos operaciones: wait (tambin denominada P) y signal (tambin denominada V). La operacin wait decrementa el valor del semforo siempre que ste tenga un valor mayor que 0; por lo tanto esta operacin se utiliza para adquirir el semforo o para bloquearlo en el caso de que valga 0. La operacin signal incrementa el valor del semforo y por tanto se utiliza para liberarlo o inicializarlo. Ambas operaciones deben ser atmicas para que funcionen correctamente; es decir que una

operacin wait no puede ser interrumpida por otra operacin wait o signal sobre el mismo semforo, y lo mismo ocurre para la operacin signal. Este hecho garantiza que cuando varios procesos compitan por la adquisicin de un semforo, slo uno de ellos va a poder realizar la operacin. Adems, se ha de indicar que este mecanismo memoriza las peticiones de operaciones wait no satisfechas y despierta por tanto a los procesos en espera. El mecanismo IPC de semforos implementado en UNIX es una generalizacin ms compleja del concepto descrito por Dijkstra, ya que va a permitir manejar un conjunto de semforos mediante el uso de un identificador asociado y realizar operaciones wait y signal que actualizan de forma atmica todos los semforos asociados bajo un mismo identificador. Esta complejidad en la utilizacin de los semforos, se justifica mediante la imposibilidad de resolver una cierta categora de problemas con los semforos manipulados individualmente, por medio nicamente de las operaciones wait y signal.

- Seales Las seales son uno de los mtodos ms antiguos de comunicacin entre procesos usados por los sistemas Unix . Durante una sesin cualquiera, el nmero de procesos depende del trabajo que los usuarios realicen. Se sabe que los procesos tienen su propio contexto, pero esto no quiere decir que estn incomunicados entre s. Existe un conjunto de mtodos mantenidos por el kernel que permiten entablar dilogos entre ellos. Estos mtodos se llaman mecanismos IPC (Interprocess Comunication). Dentro del conjunto de IPCs se tienen a los semforos, la memoria compartida,

colas de mensajes, etc. Estas no son las nicas formas de intercomunicacin de que dispone el sistema operativo Unix. Los procesos tambin pueden enviarse interrupciones software, seales. El conjunto de seales lo maneja el gestor de seales. El nmero y tipo de Finalidad. seales viene impuesto por el sistema operativo y cada una de ellaseste tipo de llamadas caso Como indica la palabra interrupcin, ser empleada en un son concreto siendo el kernel o por otro producidas por su nmero la nica informacin que realmente y tiene como finalidad parar o proceso de forma inesperada se transmite entre los procesos cuyo significado depender de la de las desviar el curso normal nmero y significado de las seales depende del tipo de Como anteriormente se dijo, el interpretacin del programador. se tenga instalado. En el fichero un sistema operativo se ejecutan. Una seal puede ser recibida por de instrucciones que Unix que cabecerasi este incurredefinidas proceso signal.h estn en un error Comportamiento. todas las seales, nmero y nombre. error de acceso a memoria, si se en coma flotante, si se produce un

Cuando un proceso una direccin intenta acceder arecibe una seal, puede tratarla de tres formas diferentes: 1.- Ignorar la seal, con lo cual no tiene efecto. de memoria fuera de su segmento de datos, etc.

2.- Invocar a la rutina de tratamiento correspondiente al nmero de seal. Esta rutina no la codifica el programador, sino que la aporta el kernel y normalmente tiene como fin el terminar el proceso que recibe la seal. En algunos casos, antes de eliminar al proceso, el kernel se encarga de generar en el directorio de trabajo actual del proceso un fichero llamado core que contiene un volcado de memoria del contexto del proceso. Analizando dicho fichero se podr saber en qu punto termin el proceso y por qu motivo se le envi la seal. 3.- Invocar a una rutina que se encarga de tratar la seal y que ha sido creada por el programador. Esta rutina establecer un mecanismo de comunicacin entre procesos o modificar el curso normal del programa. En estos casos, el proceso no va a terminar a menos que la rutina de tratamiento indique lo contrario.

Seal Seal Seal

Inicio Tratamiento Tratamiento por defecto Fin Fin Volcado de memoria Fin

Fin

La siguiente figura pretende reflejar los tres tipos de tratamientos que puede recibir una seal. La primera seal que recibe no provoca que el proceso cambie el curso de su ejecucin, esto es debido a que la accin que est activa es que el proceso ignore la seal. El proceso prosigue su ejecucin y recibe una segunda seal que le fuerza a entrar en una rutina de tratamiento. Esta rutina, despus de tratar la seal, puede optar por tres acciones: restaurar la ejecucin del proceso al punto donde se produjo la interrupcin, finalizar el proceso o restaurar alguno de los estados pasados del proceso y continuar la ejecucin desde ese punto. El proceso puede tambin recibir una seal que le fuerce a entrar en la rutina de tratamiento por defecto. Conjunto de seales bsicas. Cada seal tiene asociado un nmero entero positivo, que es lo que se intercambia cuando un proceso enva una seal a otro. Se pueden clasificar las seales en los siguientes grupos: a) Seales relacionadas con la terminacin de procesos. b) Seales relacionadas con las excepciones inducidas por los procesos. Por ejemplo, el intento de acceder fuera del espacio de direcciones virtuales, los errores producidos al utilizar nmeros en coma flotante, etc. c) Seales relacionadas con los errores irrecuperables originados en el transcurso de una llamada al sistema. d) Seales originadas desde un proceso que se est ejecutando en modo usuario. Por ejemplo, cuando un proceso enva una seal a otro, etc. e) Seales relacionadas con la interaccin con el terminal. Por ejemplo, pulsar la tecla break. f) Seales para ejecutar un programa paso a paso. Son usadas por los depuradores.

Hay un conjunto de seales definidas que puede generar el ncleo o que pueden ser generadas por otros procesos en el sistema, siempre que tengan los privilegios correctos. Usted puede listar un conjunto de seales del sistema usando el comando kill -l

3.4 Comandos para la gestin de procesos ps Mostrar los procesos en ejecucin. La orden ps nos muestra los procesos que en este momento se estn ejecutando en el sistema. Sintaxis: ps [ -efl] empleada para sistemas UNIX System V ps [aux...] para sistemas BSD. Sin opciones, nos muestra informacin sobre los procesos asociados a nuestro terminal. Algunas opciones: e Informa sobre todos los procesos en ejecucin del sistema. f Muestra una lista completa de cada proceso, incluyendo el identificador de proceso PID y el identificador del proceso padre PPID. l Proporciona listados largos con mucha ms informacin sobre cada proceso. Esta opcin incluye la prioridad, el valor nice y la cantidad de memoria entre otros datos. x Muestra adems los procesos que no estn asociados a ningn terminal. Se pueden identificar porque en la columna TTY aparece una ?. a Muestra adems los procesos lanzados por otros usuarios. u Muestra el listado de procesos informando del nombre del usuario. Ejemplos: $ ps aux $ ps -le

top Monitorea procesos

jobs Lista los trabajos y sus nmeros de identificacin. Si el prompt retorna sin ninguna informacin, es que no hay ningn trabajo corriendo. Ejemplo:

root# jobs

kill Enviar seales a los procesos. La orden kill se utiliza para enviar seales a los procesos. Una seal es una interrupcin software que se enva a un proceso para informarle sobre un evento. Sintaxis: kill PID Ejemplo: $ kill 1534 Para saber el PID de un proceso hacemos un ps aux Podremos ver solo el proceso que estamos buscando si hacemos ps aux | grep proceso Por ejemplo estudiante@charly:~$ ps aux | grep firefox anders 1534 5.9 8.4 227208 86568 ? Sl 00:39 0:45 /usr/lib/firefox-3.0/firefox anders 6507 0.0 0.0 3836 784 pts/0 R+ 00:52 0:00 grep firefox El ID del proceso se encuentra en la segunda columna (1534) que nos dice que corresponde con el Firefox. Para matarlo entonces tendramos que poner kill -9 1534 Otra solucin para saber el ID mas rpido es con el comando pgrep. Automticamente nos lo da. Ejemplo: pgrep firefox 1534

killall -l Listar todas las seales (versin para Linux)

killall bind Matar un proceso que no responde (versin para Linux)

nice Modificar la prioridad de ejecucin de un proceso. La orden nice permite modificar la prioridad de ejecucin de un programa. Sintaxis: nice [-N] orden Slo el administrador del sistema puede modificar la prioridad de un proceso. El valor de N debe estar comprendido entre 1 y 19. Por defecto nice utiliza el valor 10. Cuanto mayor sea N, menor ser la prioridad asignada. Ejemplo: $ nice -7 named Esto bajara la prioridad de named en 10 unidades.(Si estaba en -10, pasar a -20).

snice y renice : El mismo funcionamiento que nice , excepto que utiliza el numero de proceso : snice -10 <pid>

sleep Detener durante un tiempo. La orden sleep la podemos utilizar para detener la ejecucin durante el nmero de segundos especificado. Tendr utilidad en los programas de shell. Sintaxis: sleep segundos Ejemplo:

$ sleep 12

$ sleep 5 cal -3

time Cronometrar la ejecucin de un proceso. La orden time nos permite cronometrar el tiempo de ejecucin de un proceso. Sintaxis: time orden [ argumentos ] Normalmente devuelve tres mediciones de tiempo:

Real Tiempo transcurrido en la ejecucin total. User Cantidad de tiempo que consume el proceso ejecutando su propio cdigo. Sys Cantidad de tiempo que ha empleado UNIX en la ejecucin de la orden. Ejemplo: $ time sleep 120

3.5 Monitoreo de Procesos Para monitorear los procesos, el comando ms prctico es utilizar el comando top.
El comando TOP muestra a tiempo real un listado de los procesos que se estn ejecutando en el sistema, especificando adems el % de Cpu y Memoria que estn utilizando, sus IDs, usuarios que lo estn ejecutando, etc. Todo esto y mucho ms lo hace una de las herramientas imprescindibles para la administracin de cualquier tipo de sistema Unix y derivado.

La salida por pantalla de Top, puede dividirse en dos partes, la cabecera muestra entre otras cosas, el Uptime del servidor, n de usuarios conectados y load average. En la siguiente lnea podemos ver el n de procesos ejecutndose en el sistema, as como el uso de disco, memoria y cpus.

Posteriormente podemos observar un listado de procesos, que pueden ser ordenados por uso de cpu o memoria, lo que es una excelente ayuda para detectar procesos que consumen excesivos recursos en el servidor. Este listado, muestra varios detalles de cada uno de los procesos, como pueden ser el PID de proceso, usuario que lo ejecuta, %cpu y memoria que consume, comando que est ejecutando o tiempo de ejecucin del proceso entre otros.

-c : Para visualizar la lnea de comandos completa de cada proceso, activado mostrar las rutas completas. -d : Intervalo de actualizacin y refresco, podemos asignarle un valor numrico (segundos) que determinar cada cuanto actualice la informacin. -U : Monitorizar solamente los procesos de un determinado UID. -p : Monitorizar solamente los ID de procesos especificados, ejemplo:

top p12 p133


-n : Especificaremos el n de veces que actualizar hasta que finalice la ejecucin de Top, ejemplo:

Top n4 # Refrescar la informacin 4 veces y finalizar la ejecucin de TOP.

Otra funcin muy til pero que no llega instalada por defecto en la plataforma Linux es htop htop es una pequea aplicacin que nos muestra los procesos y nos permite gestionarlos. Tambin nos ensea el estado de la memoria, la swap y el consumo de CPU. El anlogo grfico es el Monitor de sistema. Para consola, el comando que se suele usar para ver los procesos era ps, como vimos en el manual de comandos. Sin embargo este comando slo muestra los procesos, lo que implicaba usar otros comandos adicionales para gestionarlos. Puede que alguno conozca top, que con casi toda probabilidad ya lo tienes instalado. htop es una versin mejorada del anterior: * Puedes hacer scroll vertical y horizontal. * Soporte para colores. * Carga ms rpido. * Para matar un proceso no necesitas introducir el nmero de ste, tan slo situarte sobre l y matarlo. * Tampoco lo necesitas para establecer la prioridad del proceso. * Tiene soporte para ratn. La diferencia merece la pena Instalar htop Pues como siempre, en consola: $ sudo aptitude install htop Grficamente buscar htop en el gestor de paquetes Synaptic. Ejecutar htop Puedes ejecutarlo a travs de Aplicaciones > Herramientas del sistema > Htop, o desde consola: $ htop

3.6 Demonios y Temporizadores. AT, CRONTAB, BATCH, NOHUP

Un Daemon (demonio en espaol) es un script, un proceso que normalmente est cargado en memoria esperando una seal para ser ejecutado. Que estn cargados en memoria no significan que ocupan CPU por lo que por muchos que tengamos, podremos trabajar sin problemas con el ordenador. Los daemons son procesos que se ejecutan en modo background. Normalmente cada daemon tiene asociado un shell script situado en la carpeta /etc/init.d/ que nos permite iniciarlo, pararlo o ver su estado. Esta carpeta puede variar dependiendo de la distribucin, ya que por ejemplo en Red Hat estn en /etc/rc.d/ Para arrancar, lanzar un daemon tenemos que utilizar el comando start. Para pararlo tendremos que utilizar el comando stop. El comando restart reinicia el daemon haciendo que se vuelvan a leer los archivos de configuracin del mismo. Para ejecutar un daemon debemos llamarlo con su ruta completa y pasarle el parmetro que nos interese. En una plataforma Debian el comando para ejecutar un demonio de servidor sera: $ /etc/init.d/bind9 start

Un temporizador es el script de un demonio el cual sirve para que se ejecute una tarea en un horario determinado. At Puede utilizar el comando at con el fin de programar un comando, una secuencia de comandos o un programa para ejecutarse en una fecha y hora especificados. At ejecuta un comando o programa a determinada hora determinado da. Su sintaxis es bastante sencilla. Por ejemplo, si deseamos descargar determinado archivo a las 23:12, ejecutamos: echo wget http://www.empresa.com/archivo.txt | at 23:11 El comando que va entre comillas luego de echo es el que se ejecutar a la hora indicada. Si deseamos hacerlo a las 23:11, pero de maana, ejecutamos: echo wget http://www.empresa.com/archivo.txt | at 23:11 tomorrow Los comandos almacenados se almacenan en la cola, esta puede verse en la pantalla si se invoca a at l o atq Ejemplo: #atq 1 2011-07-11 a huhnix 2 2011-07-10 a huhnix

3 2011-08-08 a huhnix Para borrar una tarea, se escribe el comando at -d o atrm especificando el nmero de trabajo: # atrm 3 # atq 2 2011-07-11 a huhnix 4 2011-08-08 a huhnix

Crontab Crontab es una herramienta indispensable para el administrador de sistemas, su principal funcin, radica en la automatizacin en intervalos regulares de tareas dentro de nuestro servidor. Lo primero que vamos a hacer es ver que tareas tenemos en el crontab, para ello escribimos en el Shell: crontab l Nos mostrar la lista de tareas especificadas en el crontab, es posible que veamos una lista como est: 5 0 * * * tar czf * respaldo

Ahora, analizando est lnea encontramos 6 elementos puestos en el orden que sigue:
Minuto: Es el minuto exacto en el que quieres que se ejecute la tarea Hora: La hora exacta en formato de 24 horas Da: Valor numrico del da del mes Mes: Valor numrico del mes Semana: Valor numrico del da de la semana Usuario: usuario que ejecuta el comando, sino se pone, se usa root por defecto Comando: comando a lanzar

Por ejemplo, supongamos que queremos lanzar un proceso a las 12 de la noche de cada sbado que empaquete el contenido de la carpeta de algn proyecto y nos lo envi por correo, sera algo como esto:

0 0 * * 6 tar -cvf proyecto.tar /home/jaullamas/proyecto 5 0 * * 6 mail jaullamas@porahi.com -s Respaldo -a /home/jaullamas/proyecto.tar


Noten que estoy corriendo el proceso como root, los asteriscos se usaran cuando no queremos especificar un parmetro, por supuesto el comando es obligatorio. Ahora que ya tenemos nuestra lnea construida, es hora de meterla el contrab, para ello tecleamos:

crontab e

Y se nos abre una ventana con el editor por defecto (casi siempre vi o vim), ests son algunas reglas bsicas de sobrevivencia en vi y derivados para los que se pierdan.
i - insertar
Tecla insert - presionada una vez entramos a modo de reemplazo, presionada de nuevo, regresamos al

modo de insertar
Esc - Salimos del modo de insercin y entramos al modo comando :w - Guarda los cambios :q - Sale sin guardar :wq - Sale y guarda cambios

Es aqu donde debemos insertar el cdigo anteriormente indicado:

0 0 * * 6 tar -cvf proyecto.tar /home/jaullamas/proyecto 5 0 * * 6 mail jaullamas@porahi.com -s Respaldo -a /home/jaullamas/proyecto.tar Finalmente arrancamos el demonio crond con la instruccin: /tmp/hdd/volumes/HDD1/busybox crond Batch Ejecuta comandos cuando la car ga del sis tema sea menor a 0.8 y abre el mis mo shell de at. Ej: Copiar los archivos .conf dentro de /etc a /backup/etc: pedro:~# batch at> find /etc/ -name "*.conf" | xargs cp -r= --target-directory=/backup/etc Crear un archivo comprimido de los logs: pedro:~# batch at> tar -cjf /backup/logs.tar.bz2 /var/logs Ver las tareas pendientes: pedro:~# at l 8 Sat Aug 30 01:00:00 2008 a root 10 Thu Jul 17 00:00:00 2008 a root Nohup
Muchas veces ejecutamos comandos que tardan bastante tiempo en completarse (descargar un archivo pesado, copiar ficheros, buscar cadenas entre los archivos de todo el

Obsrvese como al traer en primer plano al 'job' detenga dicho proceso. Por el smbolo [+] que indica sistema, etc.), y por supuesto no queremos que nadie o proceso 1, este adquiritanto, es que est al frente. Lo mismo sera con bg si se trata de un reiniciar compartido. necesario bloquear la sesin, algo bastante egoista que volvera acomputadorel proceso pero en segundo plano. Y tambin es posible matar los procesos con kill indicando el nmero que devuelve jobs: kill %1,
Por fortuna podemos hacer uso del comando nohup, que nos permite mantener activo un terminara con el proceso en jobs nmero 1. proceso, incluso despus de haber cerrado la sesin de usuario. Vamos a ver un ejemplo Supongamos que deseamos descargar el ISO de Ubuntu 11.10, ejecutamos entonces el comando:
nohup wget ftp://ftp.klid.dk/ubuntu-cd/intrepid/ubuntu-8.10-desktop-i386.iso &

Y luego podremos cerrar nuestra sesin y permitir a otros usuarios loguearse, sin que ello detenga la descarga. El truco est en agregar el carater & al final de la instruccin, lo que nos permite ejecutar el comando en segundo plano, mientras que nohup har que al cerrar la sesin el proceso siga activo.

3.7 Monitoreo de Procesos Foreground y Background Para el monitoreo de procesos Foreground y Background vamos a utilizar el comando jobs Si por ejemplo, se tiene acceso a una nica consola o terminal, y se tienen que ejecutar varios comandos que se ejecutarn por largo tiempo, se pueden entonces como ya se vi previamente con nohup y el operador '&' mandarlos a segundo plano o background con el objeto de liberar la terminal y continuar trabajando. Pero si solo se est en una terminal esto puede ser difcil de controlar, y para eso tenemos el comando jobs que lista los procesos actuales en ejecucin: #> yes > /dev/null & [1] 26837 #> ls -laR > archivos.txt & [2] 26854 #> jobs [1]- Running yes >/dev/null & [2]+ Running ls --color=tty -laR / >archivos.txt & En el ejemplo previo, se ejecut el comando yes y se envi a background (&) y el sistema devolvi [1] 26837, indicando as que se trata del trabajo o de la tarea [1] y su PID, lo mismo con la segunda tarea que es un listado recursivo desde la raz y enviado a un archivo, esta es la segunda tarea. Con los comandos fg (foreground) y bg background es posible manipular procesos que estn suspendidos temporalmente, ya sea porque se les envi una seal de suspensin como STOP (20) o porque al estarlos ejecutando se presion ctrl-Z. Entonces para reanudar su ejecucin en primer plano usaramos fg: #> jobs [1]- Stopped yes >/dev/null & [2]+ Stopped ls --color=tty -laR / >archivos.txt & #> fg %1 #> jobs [1]+ Running yes >/dev/null & [2]- Stopped ls --color=tty -laR / >archivos.txt &

S-ar putea să vă placă și