ssh conexão interrompida enquanto o comando de execução do psql interativo - o comando irá terminar? Posso me reconectar?

2

Eu estava usando o psql interativo para executar uma reindexação em um dos nossos bancos de dados. Infelizmente, a conexão ssh caiu enquanto a reindexação ainda estava rodando e eu não tinha colocado o psql dentro de uma janela de tela (eu não sabia quanto tempo demorou!)

Quando consegui fazer login novamente na máquina, eu corri

ps aux | grep REINDEX 

e a saída pareceu indicar que a reindexação ainda estava em execução:

postgres  6180 99.9  0.0 774960  4804 ?        Rs   Jun27 3022:02 postgres: postgres my_db_name [local] REINDEX 

Qual é o comportamento esperado do postgres nesta situação? Será que continuará a executar a reindexação até a conclusão?

Além disso, existe alguma maneira de se reconectar ao psql de tal forma que eu possa continuar vendo a saída em andamento da reindexação?

    
por eulerz 29.06.2011 / 22:40

2 respostas

1

O REINDEX pode ser abortado enquanto tenta enviar feedback para um psql que não existe mais, e isso finalmente se propaga como um "cliente desconectado". Ou, se o psql ainda existir, ele finalmente morrerá quando seu tty e sshd sobrecarregarem o buffer ... isso presumivelmente fará com que demore mais tempo.

Reconectar para ver a saída desse comando não é realmente possível, não.

    
por 30.06.2011 / 14:23
2

Tem sido minha experiência que coisas como essas morrem assim que o seu shell é encerrado por atividade ociosa.

Esta é uma das circunstâncias em que você deve usar algo como o GNU Screen. Com o GNU Screen você loga em seu servidor, digita screen , e então começa seu trabalho. Você pode gerar terminais adicionais dentro dessa sessão de tela com Ctrl + a c e alternar entre eles com Ctrl + a n e Ctrl + a p . Para desconectar da tela GNU, você pode digitar Ctrl + a d . Para reconectar, você pode fazer login e executar screen -r .

Um tutorial de Kuro5hin está disponível aqui: link

    
por 30.06.2011 / 14:28