Soy un novato en Ubuntu. He aprendido un comando
nohup [command]
- ejecutar <command>
inmune a la señal de colgar
No puedo entender el significado de " inmune a la señal de colgar ". ¿De qué tipo de señal está hablando? Y por favor dígame cómo usar este comando con un ejemplo.
command-line
nohup
coding_ninza
fuente
fuente
disown
es una mejor alternativa anohup
. Haga un fondo con un comando concommand &
oCtrl-Z
, luegodisown
úselo para separarlo del shell.Respuestas:
Consideremos que ha abierto un
gedit
editor de texto desde un terminal y está trabajando en ello. Si cierra la terminal antes de cerrargedit
, el gedit también se cierra tan pronto como cierra la terminal. Entonces, ¿qué está pasando aquí? Segedit
ejecuta 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.nohup
hace exactamente este trabajonohup
no 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 buscapstree
, 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.fuente
Además de lo que escribió @sourvac, este es un legado de Back In The Day cuando las personas inician sesión a través de terminales tontas de solo texto, a menudo a través del módem original (110 baudios analógico): el "colgar" literalmente es "colgar el teléfono". ".
Un pid que es inmune a la señal de colgar seguirá funcionando incluso después de cerrar sesión y colgar el teléfono . Esto fue muy útil en computadoras lentas cuando los trabajos se ejecutaban durante horas y horas, y no podía simplemente permanecer conectado (alguien más necesitaba usar el terminal, necesitaba usar el teléfono, la estática en la línea podría "interrumpir" la conexión , etc.)
fuente