Está en la página 1de 26

Introduccin al Sistema Operativo Linux

Gestin de procesos

M.C. Gerardo Beltrn Gutirrez

Ejecutar procesos en segundo plano

Enviar procesos a segundo plano con &


La manera ms sencilla de enviar un comando para que sea ejecutado en segundo plano es agregando & al final del mismo. Ejemplo $ prog & Sin embargo tiene la desventaja que si cerramos nuestra terminal o consola y el comando no ha sido terminado de ejecutarse este ser interrumpido.

Enviar procesos a segundo plano con nohup y&


Como solucin y para desligarlo del terminal en el cual estamos iniciando el comando en background podemos utilizar: $ nohup prog &

Comando bg, fg y jobs


El comando bg se utiliza para mover un trabajo a segundo plano. El comando fg se utiliza para mover un trabajo a primer plano.

Se puede mover un programa ejecutado en primer plano al segundo plano, detenindolo escribiendo Ctrl-Z y despus reiniciando el proceso en 2 plano, mediante la orden bg.
El comando jobs se utiliza para listar procesos que ests ejecutando en segundo plano o en primer plano.

Monitorizar los procesos activos

El comando ps
ps [opciones] Muestra la lista de procesos del sistema, y algunas de sus caractersticas: hora de inicio, uso de memoria, estado de ejecucin, propietario y otros detalles. Sin opciones lista los procesos creados por el usuario actual y asociados al terminal de usuario
Opciones: -a Muestra los procesos creados por cualquier usuario y asociados a un terminal.

El comando ps
-e. Muestra todos los procesos.

-l. Formato largo. Muestra la prioridad, el PID del proceso padre entre otras informaciones
-u. Formato de usuario. Incluye el usuario propietario del proceso y la hora de inicio. -U usr. Lista los procesos creados por el usuario usr

-x Muestra los procesos que no estn asociados a ningn terminal del usuario. til para ver los demonios (programas residentes) no iniciados desde el terminal

Comando pstree pstree [opciones] [PID | usuario] Este comando muestra la jerarqua de los procesos mediante una estructura de rbol.

Si se especifica el PID de un proceso, el rbol empezar desde ese proceso, de lo contrario el rbol empezar por el proceso init (PID=1) y mostrar todos los procesos del sistema.
Si se especifica un usuario valido se mostrar la jerarqua de todos los procesos del usuario.

Comando pstree
Opciones: -a Incluye en el rbol de procesos la lnea de comandos que se uso para iniciar el proceso. -p Incluye el PID de los procesos en el rbol

Comando top
top [opciones] El comando top ofrece una lista de los procesos similar al comando ps, pero la salida se actualiza continuamente. Es especialmente til cuando es necesario observar el estado de uno o ms procesos o comprobar los recursos que consumen. Opciones: -i Ignora los procesos inactivos, listando nicamente los que utilizan recursos del sistema. -d Especifica el ritmo de actualizacin de la pantalla en segundos.

Comando top Ordenes interactivas: h Muestra una pantalla de ayuda. q Sale del programa. k Kill. Permite detener un proceso. r Renice. Permite alterar la prioridad de un proceso.

Envo de seales a los procesos

Seales
Cada proceso que se ejecuta en el sistema est alerta de los mensajes enviados por el kernel o por el usuario. Las rdenes kill y killall se utilizan para enviar seales a un proceso.

Estos mensajes (signals) son nmeros enteros predefinidos y conocidos por los procesos.
Cuando un proceso recibe un mensaje, este realiza una determinada accin. Existen 30 diferentes seales definidas en LINUX. Cada seal tiene un nombre y un entero

Nombre SIGHUP

Entero 1

Descripcin Colgar. Esta seal es enviada automticamente cuando un modem se desconecta. Tambin se usa por muchos demonios para forzar la relectura del archivo de configuracin. Por ejemplo, en los procesos init y inetd.

SIGINT
SIGKILL

2
9

Parar el proceso y desaparece. Esta seal se enva con la secuencia de teclas Ctrl-C.
Kill. Mata un proceso incondicionalmente e inmediatamente. Enviar esta seal es un mtodo drstico de terminar el proceso, ya que no se puede ignorar. Terminar. Mata un proceso de forma controlada. Continuar. Cuando un proceso detenido recibe esta seal contina su ejecucin. Parar, pero preparado para continuar. Esta seal se enva con la secuencia de teclas Ctrl-Z.

SIGTERM SIGCONT SIGSTOP

15 18 19

Comando kill
kill [seal] [pids]

El comando kill permite enviar un mensaje arbitrario a un proceso, o varios, con un PID igual a pids.
El parmetro seal es el valor entero de la seal o el nombre de la seal que enviaremos al proceso. El valor de seal se puede especificar en minsculas o maysculas, pero normalmente se especifica en maysculas. Si se omite seal en el comando kill, se toma por defecto el valor SIGTERM (seal 15, salir de manera correcta).

El valor de pids tendremos que averiguarlos utilizando la orden ps. Ejemplos: $ kill -9 337

$ kill -SIGKILL 337

Comando killall
killall [seal] nombre_proceso

Esta orden es ligeramente diferente a la orden kill por dos motivos; en primer lugar utiliza el nombre de proceso en lugar del pid, y adems le enva la seal a todos los procesos que tengan el mismo nombre.
Por lo dems, su comportamiento es idntico. Ejemplo: $ killall -SIGKILL firefox $ killall -9 firefox

Modificar las prioridades de ejecucin de los procesos

Prioridad de procesos
Cada proceso tiene una determinada prioridad de ejecucin, al necesitar +/- tiempo de CPU que otros. Normalmente la prioridad de los procesos es gestionada automticamente por el kernel.

No obstante, LINUX ofrece la posibilidad de modificar estas prioridades y favorecer la ejecucin de ciertos procesos respecto a otros. La prioridad de un proceso puede determinarse examinando la columna PRI en los resultados de los comandos top y ps -l. Los valores mostrados son relativos, cuanto mayor es el PRI, mayor es el tiempo de CPU dedicado por el kernel a ese proceso.

Cambiado la prioridad
El parmetro que permite al usuario modificar la prioridad de ejecucin de un proceso recibe el nombre de nice number. Por defecto los procesos poseen un valor de nice igual a cero. Con este valor el kernel no modifica la prioridad del proceso. El parmetro nice puede tomar valores comprendidos entre -20 y +19. Cualquier usuario puede aumentar el valor de nice, y bajar la prioridad del proceso, pero nicamente el usuario root puede asignar nmeros negativos a nice, e incrementar la prioridad y por lo tanto el tiempo de CPU.

Cambiado la prioridad
nice [-n nicenumber] comando

El comando nice se usa para iniciar un proceso y proporcionarle un determinado valor al parmetro nice. Para los usuarios normales nicenumber es un entero comprendido entre 1 y 19.
Para el usuario root, nicenumber tambin puede tomar valores negativos (y as incrementar la prioridad del un proceso) y los valores permitidos estn comprendidos entre -20 y 19. comando es cualquier orden valida del interprete de comandos, incluyendo opciones, argumentos, redireccionamientos y el carcter especial &.

Cambiado la prioridad Ejemplos nice: Ejecuta el editor nano con un valor de nice igual a +10. El primer - se refiere a la opcin. $ nice -10 nano /etc/hosts.deny

$ nice n 10 nano /etc/hosts.deny

Cambiado la prioridad Ejecuta el editor nano con un valor de nice igual a -10. El primer se refiere a la opcin, el segundo se refiere al valor negativo del parmetro nice. nicamente el usuario root puede asignar un valor negativo al parmetro nice de un proceso.

$ nice --10 nano /etc/hosts.deny $ nice n -10 nano /etc/hosts.deny

Cambiado la prioridad
renice [+|- nicenumber] [opciones] targets

Este comando permite modificar el parmetro nice de un proceso ya iniciado. Opciones: -u Interpreta targets como un nombre de usuario. Cambia el parmetro nice a todos los procesos propietarios del usuario especificado.
-p Interpreta targets como un PID (comportamiento por defecto).

Cambiado la prioridad Ejemplos: $ renice 19 501 Baja la prioridad del proceso con PID 501 incrementando su nmero nice al mximo. $ renice -20 -u pepe 501 Aumenta la prioridad de todos los procesos del usuario pepe y el proceso con PID 501. nicamente el root puede ejecutar el comando renice con valores negativos.

También podría gustarte