Consideremos que ha abierto un gediteditor de texto desde un terminal y está trabajando en ello. Si cierra la terminal antes de cerrar gedit, el gedit también se cierra tan pronto como cierra la terminal. Entonces, ¿qué está pasando aquí? Se geditejecuta como un proceso secundario debajo de la terminal. Cuando cierra el terminal, se envía una señal de colgar ( SIGHUP) al proceso que mata el proceso secundario.
Por otro lado, si desea que su proceso secundario (aquí gedit) continúe ejecutándose incluso después de cerrar la terminal principal, querrá que su proceso sea inmune a la señal de colgar. Para que al cerrar la terminal no se cierre el proceso hijo. nohuphace exactamente este trabajo
nohupno desconecta un comando del terminal , hace que su script ignore SIGHUP y redirige stdout / stderr a un archivo nohup.out, para que el comando pueda continuar ejecutándose en segundo plano después de cerrar sesión. Si cierra el shell / terminal o cierra sesión, su comando ya no es un hijo de ese shell. Pertenece al proceso init. Si busca pstree, verá que ahora es propiedad del proceso 1 (init). Eso no se puede volver a poner en primer plano porque el primer plano ya no existe.
disownes una mejor alternativa anohup. Haga un fondo con un comando concommand &oCtrl-Z, luegodisownúselo para separarlo del shell.