Adicione term at386
ao seu .screenrc para substituir o TERM. Se isso não ajudar, tente dtach em vez de Screen (que não faz nenhuma emulação de terminal).
Eu tenho um aplicativo de console muito antigo que quero tornar um pouco mais resiliente. O programa é usado desta maneira:
Obviamente, às vezes, os usuários simplesmente perdem a conexão ssh com a máquina e, nesse caso, a sessão ssh é finalizada, o script de shell em execução é finalizado e, finalmente, o processo do banco de dados de progresso é finalizado também. Em um caso de mil que causa corrupção no banco de dados, eu gostaria de evitar que isso acontecesse.
O que eu tentei até agora:
Alguma outra ideia de como garantir que o processo de progresso não termine quando a sessão ssh é eliminada?
Adicione term at386
ao seu .screenrc para substituir o TERM. Se isso não ajudar, tente dtach em vez de Screen (que não faz nenhuma emulação de terminal).
Em muitos casos, a solução mais simples é usar nohup
e colocar o processo não interativo em segundo plano usando &
e redirecionar a saída padrão e o erro padrão para os arquivos.
Em outras palavras, você está procurando algo como a tela, mas que passa as seqüências de controle para o terminal em vez de fazer sua própria tradução? Tente dtach . Ele fornece o mesmo recurso de separação de terminal que a tela, mas sem as múltiplas janelas ou a emulação do terminal.
Talvez tente um desktop X remoto via vnc ou nx. Você poderia encapsular vnc sobre ssh para segurança ou usar nx que é executado via ssh por padrão (e é muito mais rápido). O aplicativo poderia então ser executado em um Terminal na área de trabalho X e, se a conexão fosse perdida, a área de trabalho continuaria permitindo a reconexão a qualquer momento. Minha preferência é o No Machine NX, que é gratuito para até dois usuários simultâneos e é instalado com facilidade.
Uma alternativa, se disponível, é usar um console remoto via ALOM, ILOM, DRAC, console IP-kvm ou IP-serial, etc. Dessa forma, o aplicativo seria executado no console e não poderia ser interrompido por uma falha de conexão.
Tags ssh gnu-screen nohup terminal