En Bash, el disowncomando emitido por sí mismo eliminará los procesos en segundo plano (a través de bgo &) de la tabla de trabajo activa y los marcará para no recibir un SIGHUP al cerrar sesión.
También puede pasar uno o más trabajos a rechazar, como disown 1 3. El disown -hindicador es útil si desea mantener los trabajos en la tabla, pero aún no SIGHUP al cerrar sesión.
Puede ver la tabla de trabajos emitiendo el jobscomando. Después de un fondo exitoso, se mostrará [1]+ command &. Después de rechazar un trabajo, ya no debería mostrarse en la tabla de trabajos, y ya no debería desaparecer al cerrar sesión. Todavía se puede ver el proceso a través ps ux, topy otros servicios de proceso de visualización.
Después de que un trabajo ha sido rechazado, puede esperar a que termine naturalmente o enviar una señal killal PID para detenerlo.
Debido a que Bash solo está eliminando el trabajo de la lista de trabajos en ejecución para finalizar y los identificadores de archivo para stdout y stderr de su terminal aún están abiertos, continuará recibiendo la salida del trabajo hasta que su dispositivo terminal se cierre (cuando cierre la sesión) .
Ejemplos:
# we start a command in the background
$ cat /dev/urandom > test &
[1] 18533
# we see our command is still running
$ jobs
[1]+ Running cat /dev/urandom > test &
# we disown the backgrounded job
$ disown 1
# notice it is no longer in the job table
$ jobs
Por lo general, solo lo uso disownsi ejecuto un comando potencialmente de ejecución prolongada como un rsyncoy cpluego decido que necesito cerrar sesión sin terminarlo. Si sabe que va a ejecutar un comando y cerrar la sesión, puede capturar la salida canalizándola teea un archivo, ejecutándola nohupo ejecutándola screen(lo que le permite retomar la propiedad del comando / finalizar después) )
Ejemplos:
# capture stdout and stderr to separate logs
cat /dev/urandom >stdout.log 2>stderr.log
# capture stdout and stderr to the same log, and display to stdout as well
cat /dev/urandom 2>&1 | tee output.log
# run a command under nohup (doesn't require a disown or job control support)
nohup cat /dev/urandom </dev/null