Estou copiando alguns grandes conjuntos de dados para o google drive usando a sincronização rclone no Linux no MobaXterm. Eu envio o trabalho conforme abaixo;
-cpu:~$ nohup rclone sync /path_to_source/. /path_to_destination &
[1] 16310
e quando faz 'jobs' para ver o status do trabalho, ele está em execução.
-cpu:~$jobs
[1]- Running nohup rclone sync /path_to_source `/path_to_destination &`
No entanto, talvez algumas horas depois, a sessão pare por algum motivo;
Session stopped
- Press <return> to exit tab
- Press R to restart session
- Press S to save terminal output to file
Server unexpectedly closed network connection
Então eu reinicio a sessão, faço login e faço 'jobs' nada é mostrado.
-`cpu:~$jobs`
-`cpu:~$
Eu sei que o trabalho ainda não foi concluído, porque usei nohup, também quando executo a mesma linha de comando de sincronização acima, ela ainda está copiando.
Depois de reiniciar a sessão e usar 'jobs', por que não consigo ver os trabalhos em execução? Ou como posso vê-lo, possivelmente com IDs de trabalho, obrigado
O
jobs
comando/utility/shell interno lista apenas os trabalhos associados à sessão atual do shell. A especificação POSIX define esse comportamento:Quando a sessão original é interrompida e você se reconecta ao sistema, você termina em uma sessão diferente (ou em um 'Ambiente de Execução Shell' diferente para evitar confusão). Dentro dessa nova sessão, o shell não rastreará os trabalhos iniciados na sessão anterior.
Como você já usou o
nohup
comando junto com o&
operador para fazer o comando em segundo plano, ainda deverá vê-lo em execução no sistema. Runningps -ef | grep rclone
deve mostrar o processo em execução.QA relacionado: Por que o comando jobs não funciona no shell script? , o comando “jobs” não pode ver os trabalhos interrompidos .