|
El comando yes envia una serie de 'y' a la salida estandar, /dev/null es
un dispositivo 'agujero negro' todo lo que se le pase 'desaparecera', asi
'yes > /dev/null' no mostrara nada en la salida estandar ya que todo
se va a /dev/null.
Para enviar un proceso a segundo plano lo llamamos desde la linea de comandos
seguido de '&':
$ yes > /dev/null &
[1] 20931
$
Ya lo hemos mandado a segundo plano y podemos seguir usando la consola,
pero ¿que es el [1] 20904?
el [1] es el numero de tarea del proceso yes, si volvieramos a ejecutar
el mismo comando el numero seria [2].
20931 es el PID, el numero que el sistema asigna a cada proceso, estos
dos numeros nos serviran para identificar al proceso mas tarde.
Ahora tenemos a yes corriendo en segundo plano.
Para conocer el estado del proceso usamos el comando jobs:
$ jobs
[1]+ Running yes >/dev/null &
#Tambien podemos usar el comando ps
$ ps
PID TTY TIME CMD
20880 pts/1 00:00:00 bash
20931 pts/1 01:09:14 yes
21139 pts/1 00:00:00 ps
Ahora vamos a 'matar' (terminar) la tarea con el comando kill.
Podemos matar a un proceso con su numero de tarea o su PID:
$ kill %1
$ jobs
[1]+ Terminated yes >/dev/null
$ jobs
Hemo matado el proceso por su numero de tarea, podriamos haber hecho lo
mismo con su PID:
$ yes > /dev/null &
[1] 21291
$ jobs
[1]+ Running yes >/dev/null &
$ ps
PID TTY TIME CMD
20880 pts/1 00:00:00 bash
21291 pts/1 00:00:15 yes
21292 pts/1 00:00:00 ps
$ kill 21291
$ jobs
[1]+ Terminated yes >/dev/null
$ jobs
El comando kill no solo sirve para matar (enviar la señat KILL) sino que
tambien sirve para enviera todo tipo de señales:
Con la opcion -15 manda la señal TERM que hace que el proceso guarde sus
datos antes de finalizar.
Con -9 matamos igual que kill normal.
Con -19 paramos la tarea (STOP).
Con -18 la reiniciamos (CONT).
Hay muchas mas señales todas ellas estan en las paginas del manual de signal
y kill
|