Un "stopped job" se puede ver como un proceso que se ha detenido pero que sigue vivo en segundo plano (es como un zombie), por lo que consume recursos. Esto sucede porque el proceso ha sido separado de la terminal y entonces ya no puede recibir ninguna señala de entrada, ni lanzar señales de salida.
El origen del problema está en que has usado la combinación Ctrl
Z
para salir del intérprete de Python, que es conocido como el carácter de suspensión. Esto envía el proceso a modo suspensión, añadiendo un "stopped job" a la cola.
Puedes ver una lista de los "stopped jobs" ejecutando el comando jobs
en la terminal:
zeokat@ubuntu:~$ jobs
[1]+ Stopped python -v
El número que aparece entre corchetes es el identificador del trabajo, se le conoce como "jobspec". Este número es útil para matar el proceso con el comando kill %1
. Vemos que yo he usado %1
porque el identificador de mi jobspec que aparece entre corchetes es el 1
.
zeokat@ubuntu:~$ kill %1
[1]+ Stopped python -v
zeokat@ubuntu:~$ jobs
[1]+ Terminated python -v
Si quieres evitarte todo esto, usa la combinación Ctrl
D
para salir del intérprete Python. Así matarás el proceso al mismo tiempo que abandonas el intérprete de Python limpiamente y no se agregará ningún "stopped job" a la cola.
Esta es una medida de seguridad que advierten al usuario de que el proceso sigue vivo antes de salir de la shell. Se lleva a cabo para evitar posibles problemas con programas o servicios que puedan depender de ese proceso.
Cuando te muestra el mensaje de advertencia al ejecutar el comando exit
, también puedes ejecutar una segunda vez el comando exit
y el proceso zombie se terminará automáticamente (esto es lo que suelo hacer yo).