27 votos

¿Por qué algunos programas que se ejecutan desde la Terminal usando '&' cerca al Terminal de sí y otros no?

Me estaba preguntando, por ejemplo cuando me inicie qtox con:

qtox &

Y, a continuación, cierre la Terminal, qtox cierra con ella. Sin embargo, cuando se ejecuta etherape el uso de:

sudo etherape &

El cierre de la Terminal no se cierra o causar cualquier problema a Etherape. Y entre las diferentes aplicaciones que existen diferentes comportamientos, algunos cerca de la Terminal cuando lo hace, los demás no, ¿por qué? ¿Por qué algunos se cierran cuando otros no? Estoy corriendo Ubuntu GNOME 15.10 con GNOME 3.18.

36voto

ieplugin Puntos 216

Cuando se cierra un terminal el terminal envía una señal SIGHUP a la concha; el shell, a su vez, envía una señal SIGHUP a todos sus hijos grupos de procesos, que incluyen grupos de procesos en segundo plano;

Cómo cada proceso va a reaccionar a la señal es completamente del proceso: si el proceso no definir un manejador para la señal y decirle al kernel (a través de algunos de syscall como signal() o sigaction()) que se desea manejar, el kernel se ejecuta en el controlador predeterminado de la señal, que en el caso de una señal SIGHUP consiste en terminar el proceso.

Sin embargo, cuando se ejecuta un comando con sudo, el UID de la sudo del proceso y de su proceso hijo se establece en 0 (root); en general, a menos que el UID del proceso de envío de la señal es 0 (root) o la misma como el proceso de destino, el núcleo descarta la señal (es decir: un proceso no puede enviar señales a un proceso de propiedad de otro usuario, a menos que el proceso de envío de la señal es propiedad de root); es por eso que un usuario ejecuta el proceso, tales como la fiesta de la instancia de ejecución por el terminal no puede SIGHUP un sudo proceso y, en última instancia, el cierre de un terminal no afecta a un proceso que comenzó con sudo.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: