Problema: Tenemos que ejecutar un proceso desde un terminal que va a dejar de estar disponible y no queremos que se cancele al cerrar dicho terminal

Solución:  Depende de si ya hemos arrancado el proceso o no.

A) Procesos sin arrancar

pi@bot ~ $ nohup ./script.sh &
pi@bot ~ $ exit

Esto arrancara script.sh sin que sea asociado a nuestro terminal, y generar un fichero nohup.out donde se guardara la salida del script.

B) Procesos ya arrancados

Si el proceso nos tiene ocupado el terminal tecleamos Control+Z para dormirlo

pi@bot ~ $ ./script.sh
....
^Z
[1]+ Stopped
pi@bot ~ $ jobs
[1]+ Stopped ./script.sh
pi@bot ~ $ bg 1
[1]+ ./script.sh &
pi@bot ~ $ disown -h %1
pi@bot ~ $ exit

Como de esta manera no tenemos disponible ningún nohup.out desde el que ver la salida la podemos consultar de la siguiente manera:

pi@bot ~ $ ps -e | grep script.sh
12194 ? 04:11:47 script.sh
pi@bot ~ $ tail -f /proc/12194/fd/1
...

C) Recuperar proceso en otro terminal

pi@bot ~ $ ps -e | grep script.sh
12194 ? 04:11:47 script.sh
pi@bot ~ $ reptyr -s 12194
...

Fuente: askubuntu.com, raspi.tv, monkeypatch.me, askubuntu.com