Quando você entra por ssh, você cria um processo na sua shell default.
Todos os processos que forem feitos por essa sessão serão filhos do
processo ssh. Por isso, se seu processo ssh for morto, todos os
processos filhos serão mortos. Para permitir que um processo continue
rodando após seu pai ser morto, é preciso mandar uma mensagem para o SO
saber disso. Para isso usamos o comando nohup
.
Para criar um processo nohup
(como exemplo vou usar um binary
example.out
como exemplo de processo).
nohup ./example.out
Para criar um processo nohup
e deixa-lo em background:
nohup ./example.out &
Estes comandos criarão um arquivo nohup.out
na sua home. Para
redirecionar as saídas padrão e de erro:
nohup ./example.out >stdout.log 2>stderr.log
Para redirecionar as saídas tanto padrão quanto de erro para o mesmo out file:
nohup ./example.out >output.log 2>&1
Não esqueça de usar o &
no final se você quiser colocar o processo em
background:
nohup ./example.out >output.log 2>&1 &
Usar argumentos funciona igual:
nohup ./example.out first_arg sec_arg third_arg >output.log 2>&1 &
Assim como redirecionar entrada:
nohup ./example.out first_arg sec_arg third_arg <input.txt >output.log 2>&1 &
[index]