Eu não entendo completamente sua pergunta, mas vou tentar explicar o uso de nohup
:
Na página de manual man nohup
:
nohup - run a command immune to hangups, with output to a non-tty
Portanto, nohup
desconecta os fluxos de entrada e saída padrão do terminal ( /dev/null
se torna entrada, a saída vai para o arquivo nohup.out
) e também protege o aplicativo dos sinais SIGHUP
(sinal de desligamento). Isso permite que você finalize o processo do shell no qual iniciou o comando nohup
-ed sem eliminar este processo filho.
Uma maneira semelhante de impedir a eliminação de um processo quando o shell pai é finalizado é disown
:
my_command & disown
Isso executa my_command
em segundo plano e o desativa do processo pai, mas sem executar nenhum redirecionamento de E / S. Ele efetivamente torna o comando um processo independente, não sendo mais um processo filho do shell pai.
Quando você quer apenas executar um processo em segundo plano, mas não quer deserdá-lo do shell atual (para que ele seja eliminado quando o processo pai sair), você pode omitir o nohup
ou disown
e use somente &
do Bash:
my_command &