Liguei-me a um servidor via SSH e efetuei login no mysql e solicitei que ele executasse uma consulta (cujos resultados são despejados em um CSV) que poderia levar mais de uma hora. Embora eu tenha instruído meu cliente a enviar pacotes nulos a cada 60 segundos para manter a sessão ativa, ainda estou paranóico de que a consulta / processo mysql possa terminar, então minhas perguntas são:
- Uma sessão ssh cancelada (devido à inatividade) matará o processo de consulta do mysql?
- Como garantir que isso não aconteça - o pacote nulo envia a cada 60 segundos o suficiente?
nohup
ao efetuar login no mysql, isso persistirá nas consultas em execução no interior?nohup
não será muito útil para você, uma vez que o mysql REPL não será anexado ao terminal. Tente usar um dos multiplexadores (ou dtach) que mencionei acima, provavelmente eles atenderão melhor às suas necessidades.Comecei a executar
screen
sessões quando ssh em uma caixa, parcialmente para evitar isso e, como um bônus adicional, recebo várias guias, não consigo vencê-las. Se eu for desconectado por algum motivo, posso anexar novamente à minha sessão na tela.Atualizar
Para responder a # 2, eu corria
mysql
de dentro de um shell bash através de uma sessão de tela. Parece complicado, mas é apenas:Você pode editar seu arquivo ~ / .screenrc para adicionar legendas na parte inferior da sessão da tela para poder acompanhar suas guias, renomear suas guias etc. Se você estiver desconectado, ao se reconectar, execute
e isso mostrará todas as sessões desanexadas. Para reconectar, basta executar algo como
Ou seja qual for o ID da sessão de tela. Você está de volta de onde parou. Você deve executar
screen -d
como o mesmo usuário que iniciou a sessão de tela, apenas fyi ou raiz, é claro. Não tenho muita certeza, porque depois de entrar no ssh sempresudo su -
faço para não ter que executar todos os comandos.fonte
screen
seja sólido, ele não responde diretamente às duas perguntas listadas pelo OP.