Para executar um comando em segundo plano no bash, você usa &
no final.
./myscript.sh -opt1 > /tmp/myscript.out &
Eu quero executar um script bash em um servidor em segundo plano?
Eu sei que posso usar o ssh para executar um script, mas o script pode durar muito tempo, então posso executá-lo em segundo plano? Se sim, como fazer isso?
Para executar um comando em segundo plano no bash, você usa &
no final.
./myscript.sh -opt1 > /tmp/myscript.out &
Uma opção é usar um gerenciador de telas como o GNU Screen . Você inicia isso (executando screen
e, em seguida, executa seu processo dentro dele. Você pode então se sentir à vontade para simplesmente desconectar sua sessão SSH - o processo continuará a ser executado.
Mais tarde, você poderá se reconectar e executar screen -r
para continuar. Ele redesenhará tudo como você nunca desconectou - permitindo que você veja a saída do seu processo.
nohup
é seu amigo, mas de acordo com essa entrada da Wikipedia, você também pode usar screen
.
nohup script &
exit