Tengo un script que inicia varios procesos en segundo plano y funciona bien cuando se llama desde la línea cmd.
Sin embargo, también se llama al mismo script durante el inicio de mi xsession y, además, en algunos eventos de udev. En ambos casos los procesos en segundo plano desaparecen.
Puse un sueño 10 en el script y pude ver que los procesos bg efectivamente se iniciaron, pero una vez que existe el script, los procesos bg se llevan consigo. Intenté resolver invocando los procesos bg con start_stop_deamon --background
, pero esto no hace la diferencia. Sin embargo, puedo invocar el script desde una consola y salir de la sesión y los procesos bg siguen ejecutándose.
Además de solucionar mi problema inmediato (aunque agradecería mucho cualquier ayuda), estoy interesado en comprender la lógica detrás de todo. Sospecho que algo relacionado con la ausencia de terminal.
Respuesta1
Proteja sus procesos con nohup
:
nohup command-name &
También puedes utilizar esta técnica si quieres ignorar la redirección stdout y stderr a nohup.out:
command-name & disown