Pregunta 1¿Qué muestra ps al ejecutarlo?
Comprobar y detener procesos — ps / kill
Aprende a listar los procesos en ejecución con ps, a consultar tu propio PID con $$, y a detener un proceso que enviaste a segundo plano con & usando kill — todo práctico en una terminal del navegador.
Ver los procesos en ejecución — ps
Un proceso es cada programa individual en ejecución.
ps es el comando que lista los procesos que se están ejecutando ahora mismo.
A cada proceso se le asigna un número único llamado PID (ID de proceso), que sirve de marca cuando lo detienes más tarde.
Cuando la lista es larga, pásala a grep, como ps | grep sleep, para acotar los procesos por nombre.
PID único. ps lista estos procesos en ejecución.| Comando | Significado |
|---|---|
ps | Listar los procesos en ejecución con sus PID |
ps | grep name | Acotar los procesos por nombre |
echo $$ | Mostrar el propio PID de la shell actual |
cmd & | Ejecutar un comando en segundo plano |
Puedes extraer el propio PID de la shell con la variable especial $$.
$$ es una variable especial que la shell rellena con su propio PID.
Ejecutar echo $$ muestra el número de la shell en la que estás escribiendo, y encontrarás ese mismo número en la lista de ps.
ps lista los PID de los procesos en ejecución; echo $$ muestra el PID de la shell actual.ps # lista de procesos en ejecución (con sus PID)
echo $$ # el propio PID de esta shell
ps -ef # una lista más detallada (el formato varía según el entorno)
Ejecución en segundo plano y detención — & y kill
Añadir & al final de un comando lo ejecuta en segundo plano, lo que te permite pasar a la siguiente operación sin esperar a que termine.
sleep 30 & ejecuta en segundo plano un proceso que solo espera, sin hacer nada durante 30 segundos, lo que lo hace ideal para practicar cómo detener un proceso.
Para detener un proceso en segundo plano, pasa su PID a kill.
La shell muestra el PID justo después de iniciarlo con &, y también puedes consultarlo en la lista de ps.
Pasar el PID a kill envía una señal de terminación a ese proceso.
Para un proceso que no se detiene con un kill PID normal, envía una señal de cierre forzado con kill -9 PID.
| Comando | Señal enviada | Uso |
|---|---|---|
kill PID | SIGTERM (petición de salir) | Detención normal; deja que el proceso limpie |
kill -9 PID | SIGKILL (cierre forzado) | Terminar a la fuerza un proceso que no se detiene |
&, halla el PID con ps y termina ese proceso con kill.Dale a kill el PID correcto
kill envía una señal de terminación al proceso con el PID que pasas.
Equivocarte de número detendría un proceso distinto, así que comprueba el PID objetivo en la lista de ps antes de ejecutarlo.
Sobre kill en este entorno
En este entorno del navegador, pasar un PID a kill puede no detener el proceso como lo haría en un sistema real, y puede que veas No such process.
En este curso aprendes la forma de los comandos kill PID / kill -9 PID.
En un servidor real, el flujo de comprobar el PID con ps y detenerlo con kill funciona exactamente como se muestra.
sleep 60 & # ejecutar en segundo plano un proceso que espera 60 segundos
ps # hallar el PID de sleep en la lista
kill 123 # pasar el PID que hallaste (p. ej. 123) para terminarlo
Verificación de conocimientos
Responde cada pregunta una a una.
Pregunta 2¿Qué muestra echo $$?
Pregunta 3¿Qué ocurre cuando añades & al final de un comando?