Un trabajo detenido es aquel que se ha colocado temporalmente en segundo plano y ya no se está ejecutando, pero aún está utilizando recursos (es decir, memoria del sistema). Debido a que ese trabajo no está conectado al terminal actual, no puede producir resultados y no recibe entradas del usuario.
Puede ver los trabajos que está ejecutando utilizando el jobs
comando incorporado en bash, probablemente también otros shells. Ejemplo:
user@mysystem:~$ jobs
[1] + Stopped python
user@mysystem:~$
Puede reanudar un trabajo detenido utilizando el fg
comando incorporado bash (primer plano). Si tiene varios comandos que se han detenido, debe especificar cuál reanudar pasando el número de especificación de trabajos en la línea de comando con fg
. Si solo se detiene un programa, puede usar fg
solo:
user@mysystem:~$ fg 1
python
En este punto, vuelve al intérprete de Python y puede salir utilizando control-D.
Por el contrario, puede kill
ejecutar el comando con su especificación de trabajo o PID. Por ejemplo:
user@mysystem:~$ ps
PID TTY TIME CMD
16174 pts/3 00:00:00 bash
17781 pts/3 00:00:00 python
18276 pts/3 00:00:00 ps
user@mysystem:~$ kill 17781
[1]+ Killed python
user@mysystem:~$
Para usar la especificación de trabajo, preceda el número con la tecla de porcentaje (%):
user@mysystem:~$ kill %1
[1]+ Terminated python
Si emite un comando de salida con trabajos detenidos, se mostrará la advertencia que vio. Los trabajos se dejarán en ejecución por seguridad. Eso es para asegurarse de que está consciente de que está intentando matar trabajos que podría haber olvidado que detuvo. La segunda vez que utiliza el comando de salida, los trabajos finalizan y el shell sale. Esto puede causar problemas para algunos programas que no están destinados a ser eliminados de esta manera.
En bash parece que puedes usar el logout
comando que matará los procesos detenidos y saldrá. Esto puede causar resultados no deseados.
También tenga en cuenta que algunos programas pueden no salir cuando se terminan de esta manera, y su sistema podría terminar con una gran cantidad de procesos huérfanos utilizando recursos si tiene la costumbre de hacerlo.
Tenga en cuenta que puede crear un proceso en segundo plano que se detendrá si requieren la entrada del usuario:
user@mysystem:~$ python &
[1] 19028
user@mysystem:~$ jobs
[1]+ Stopped python
Puede reanudar y eliminar estos trabajos de la misma manera que realizó los trabajos que detuvo con la Ctrl-z
interrupción.