Ejecución en el fondo & , kill, nice y nohup
Para ejecutar un programa en el fondo, es decir, recuperando inmediatamente el control del terminal, basta añadir el carácter & al final del comando de ejecución:
program resultados.r &
inmediatamente aparecerá en el terminal, debajo de esta línea, un número que es el número de proceso de la ejecución de este programa. Para detener definitivamente dicha ejecución (no se puede detener temporalmente) se puede utilizar el comando kill:
kill númerodeproceso
La ejecución de un programa en el fondo no impide que aparezcan en la pantalla los mensajes de error que se produzcan (a no ser que se haya redirigido la salida de errores), y que el programa se pare cuando se salga del sistema. Para que el programa continúe ejecutándose aún cuando nosotros hayamos terminado la sesión, hay que utilizar el comando nohup:
nohup program
Si no se utilizan redirecciones todas las salidas del programa se dirigen a un fichero llamado nohup.out. Cuando se utiliza nohup el ordenador entiende que el usuario no tiene prisa y automáticamente disminuye la prioridad de la ejecución. Existe un comando, llamado nice, que permite realizar ejecuciones con baja prioridad, es decir se le indica al ordenador que puede ejecutar de forma más lenta esta aplicación si existen otras que sean más urgentes. Se utiliza en las formas,
nice program &
nice nohup program &
Para darle al programa la prioridad mínima habría que utilizar el comando,
nice -19 program &
donde el -19 indica la mínima prioridad.
Comando time
El comando time, precediendo a cualquier otro comando, suministra información acerca del tiempo total empleado en la ejecución, del tiempo de CPU utilizado por el programa del usuario, y del tiempo de CPU consumido en utilizar recursos del sistema. Por ejemplo para saber el tiempo utilizado en la compilación y montaje del programa prueba.c utilizaríamos el comando,
time gcc prueba.c
Comando top
Linux incluye una aplicación llamada top cuya finalidad es manipular la ejecución de programas de una forma interactiva. Esta aplicación muestra una lista de los procesos que se están ejecutando. Los principales comandos de top son: u que muestra los procesos que pertenecen a un determinado usuario, k equivalente al comando kill para matar un proceso y h que muestra la ayuda del programa.