He comenzado un programa en Linux usando &y disown.
Deseo ver si todavía se está ejecutando y posiblemente matarlo.
Comencé el proceso con comandos como estos:
(env)bash-4.2$ python manage.py update_rollups &
[1] 29144
(env)bash-4.2$ disown
Ya no puedo encontrarlo ps auxni matarlo en función del pid 29144.
Quiero saber si el proceso aún se está ejecutando ( init¿ bajo ?).
¡Espero que puedas ayudar!

Respuestas:
En breve
Con
&ydisownno cambia el PID [ 1 ] del proceso.Si no lo ve en la
ps -p <YOURPID>salida, ya no se está ejecutando.Puede verificarlo con un
echo $?[ 2 ] adicional después del comandops(okill), verificando si el programa sale con un código de salida diferente de0(típicamente1).Comprender tus comandos.
Fondo : cuando ejecuta el comando con la final,
&lo envía en segundo plano.Esto significa que:
[1]y puede referirse a él como%1; (pruebe el comandojobs).fgybg.Es (todavía) "propiedad" del shell (vinculado al padre): si el shell recibe una
SIGHUPseñal, también enviará unaSIGHUPseñal al proceso.Desconocido : con el comando
disown, elimina el trabajo de la lista de trabajos del shell, pero no cambia su PID.Tenga en cuenta el mismo PPID (el shell todavía existe).
Ahora matamos al caparazón.
Hay otra
PPID, la5339, que con otra invocación deps,ps -p 5339descubrirá que es unainitinstancia:pstree: una manera más rápida.Puedes ver con
pstreemás rapidez.Antes de
disowny matar a los comandos bash :Después de
disowny matar a la fiesta :Nota: por supuesto, todos los PID en su caso serán diferentes ...
fuente
Si no está dentro
ps auxf, entonces no se está ejecutando. Si ejecutakill 29144y obtiene "No hay tal proceso", eso también significa que el proceso no se está ejecutando.fuente
Cada proceso tiene una carpeta en el
/procsistema de archivos con ellapid. Si la carpeta no existe, el proceso no se está ejecutando.Por ejemplo
puedes ver el proceso
commandlinesalida de ejemplo:
/usr/sbin/smbdo verifique el estado del archivo de proceso
salida de ejemplo:
fuente