ssh user@server "echo /usr/run/my/job | at now +1 min"
Estou tentando executar um programa por SSH que continua em execução quando eu me desconecto. Esta resposta de estouro de pilha deu-me o seguinte comando:
nohup sleep 30 > foo.out 2> foo.err < /dev/null &
Infelizmente, parece que não funciona. Eu faço o login ( ssh -Y
) para um shell bash remoto e executo, desconecto e volto dentro de 30 segundos, mas jobs
não mostra nada e os arquivos foo
também não mostram nada. Existe alguma outra maneira que eu possa executar trabalhos em background sobre o ssh depois de sair?
ssh user@server "echo /usr/run/my/job | at now +1 min"
jobs
não mostrará nada se você gerar o processo em outro shell; a primeira linha da descrição da sua página de manual é:
The jobs utility shall display the status of jobs that were started in the current shell environment
Assim, você poderia ssh para o computador, sleep 30 &
e ssh de outra janela, e jobs
ainda não mostraria nada nessa outra janela, embora o processo ainda esteja obviamente em execução. O comando que você tem funciona; tente usar ps
ou pgrep
para verificar em vez disso (por exemplo, pgrep sleep
)
Tags ssh nohup background-process