Supongamos que queremos actualizar nuestra base de datos de nombres de ficheros para el comando locate, para ello ejecutamos:
# updatedb
Observamos que tarda en terminar y suspendemos su ejecución con [Control]+[z] . El sistema nos devuelve el mensaje:
Si ahora queremos que continúe pero en segundo plano, basta con ejecutar2.20
# bg
para haber continuado en primer plano,
# fg
Si el proceso fué lanzado en segundo plano,
Si intentamos detener el proceso con [Control]+[z],
el sistema ni se entera (el proceso está corriendo en segundo plano),
así que previamente debemos traerlo a primer plano con $
fg y después ya podemos suspenderlo, relanzarlo o matarlo.
El comando jobs (interno de la shell) informa sobre el estado
de los procesos (ps también).
Con kill podemos matar un proceso, la sintaxis más usual es:
donde señal es opcional y en general toma dos valores
Si nos vemos obligados a utilizar la señal 9, lo matamos bien muerto, sin tiempo a que cierre ficheros ni descargue datos de memoria a disco. Moraleja, intentaremos mandarle primero un kill normal y si no hay manera pasaremos a la artillería pesada.
Supongamos que hemos cerrado mozilla y que notamos que el sistema ``está lento'', escribimos:
$ps -ax
y ¡date!, mozilla sigue en ejecución con el PID
...
3940 tty1 S 0:01 /usr/lib/mozilla-1.0.1/mozilla-bin
...
ejecutamos entonces:
$ kill -9 3940
y listo, se acabó mozilla (en sentido figurado, claro está). Si ahora ejecutamos de nuevo:
$ ps -ax
no debería aparecer mozilla por ningún lado.
Si la lista de procesos es muy larga también podemos filtrar la salida con grep:
$ ps -ax | grep mozilla
# bg %numero_tarea.
fg del inglés foreground y gb de background.
$ kill -l
podemos visualizar todas las señales posibles (es una ele minúscula).