nohup
ou disown
(no bash) permitirá que um processo ou tarefa continue em segundo plano após o shell de controle ter sido eliminado.
Recentemente, tentei descompactar um arquivo zip de 30 gigabytes em um sistema remoto usando o Putty. Enquanto o longo processo de descompactação continuava, fechei o Putty, assumindo que o processo continuaria a rodar na máquina remota.
Quando voltei mais tarde e entrei novamente na máquina, percebi que o processo só deveria ter sido interrompido quando fechei o Putty. Eu não esperava que isso acontecesse.
Minha pergunta é: como evitar esse problema? Posso de alguma forma disparar um processo em segundo plano? Ou deve apenas configurar um cronjob de uma vez que irá executar o processo para mim?
Você pode usar a tela do gnu para executar o programa e, em seguida, anexar novamente à sessão posteriormente. Basta iniciar a tela e iniciar o processo de descompactação. Quando você quiser desconectar, pressione Ctrl-A D
. Então, quando você quiser anexar novamente à sessão de tela, use screen -r
e ela será anexada novamente à sessão anterior.