Temos um longo processo de execução em um servidor remoto que é iniciado manualmente de tempos em tempos. Infelizmente, as conexões à Internet morrem, o kernels entra em pânico e vários outros desafios podem ser encontrados na sessão ssh usada para conectar e iniciar o trabalho.
A tela parece ser uma maneira perfeita de garantir que o processo não seja interrompido. No entanto, contar com uma pessoa para sempre lembrar-se de iniciar a tela e executar o script para iniciar o processo é um problema que espera acontecer. Existe uma maneira do script que eu possa verificar para ver se o script está sendo chamado na tela? Se for o processo continuará, caso contrário, o script será encerrado com uma mensagem instruindo o usuário a executar a tela primeiro.
fonte
Respostas:
Existe uma variável de ambiente para isso. Se estiver sendo executado dentro da tela,
$TERM
seráscreen
. É simples assim; basta fazer um se nele. Por exemplo,ecoará a barra quando estiver na tela; foo caso contrário.
fonte
screen-256color
se o usuário tiver configurado o suporte para 256 cores.Enquanto você trabalha com tela, por que não executar o script com 'nohup'? Isso também garantirá que ele continue em execução se você for desconectado.
Ele gera um arquivo por padrão, para que você possa usar outras ferramentas para monitorar a saída do script, se desejar.
fonte