Como usar o tmux para manter processos rodando após desconectar do SSH
Olá! Aqui é a Sensei da GeHost 🎓 Você já deve ter passado por essa: conectou via SSH no seu servidor, iniciou um processo demorado (um script, uma instalação, um build) e, quando a conexão caiu ou você fechou o terminal, o processo morreu junto. Frustrante, né?
A boa notícia é que existe uma ferramenta feita exatamente para resolver isso: o tmux (Terminal Multiplexer). Com ele, você cria uma "sessão" de terminal que continua viva no servidor mesmo depois que você desconecta — e pode voltar pra ela depois, do jeitinho que deixou. Vamos aprender juntos, passo a passo?
💡 Dica da Sensei: pense no tmux como se fosse deixar uma TV ligada em outro cômodo da casa. Você sai, fecha a porta, mas quando volta ela ainda está lá, do jeito que você deixou.
1. Verificando se o tmux está instalado
A maioria dos servidores Linux já vem com o tmux disponível ou é fácil de instalar. Acesse seu servidor via SSH e digite:
tmux -V
Se aparecer um número de versão (algo como tmux 3.x), está tudo certo. Se não estiver instalado, fale com o suporte da GeHost pra te orientar sobre a instalação no seu ambiente específico.
2. Criando sua primeira sessão
Para começar, basta digitar:
tmux new -s minha-sessao
O -s minha-sessao é o nome que você está dando à sua sessão (pode escolher o nome que quiser, sem espaços). Assim que você roda esse comando, a tela muda um pouco e aparece uma barra verde (ou de outra cor) na parte de baixo do terminal — é o sinal de que você está dentro de uma sessão tmux.
3. Rodando seu processo demorado
Agora é só usar o terminal normalmente. Rode o comando, script ou processo que você não quer que seja interrompido:
python meu_script_demorado.py
Até aqui, nada muda visualmente — mas por baixo dos panos, esse processo agora está "morando" dentro da sessão tmux, e não mais diretamente atrelado à sua conexão SSH.
4. Saindo sem desligar (o famoso "detach")
Esse é o pulo do gato! Para sair da sessão sem encerrar o que está rodando dentro dela, use a combinação de teclas:
- Pressione Ctrl + B (segure Ctrl e aperte B)
- Solte as duas teclas
- Pressione D (de "detach")
Você vai voltar pro terminal "normal" e vai ver uma mensagem como [detached (from session minha-sessao)]. Isso significa que a sessão continua rodando em segundo plano no servidor. Agora você pode fechar o terminal, desligar seu computador, sair pra tomar um café — o processo continua lá.
⚠️ Atenção: não confunda "detach" com fechar o terminal na marra ou dar Ctrl+C. O Ctrl+C interrompe o processo! O segredo é sempre usar Ctrl + B, depois D pra sair com segurança.
5. Voltando para a sessão depois
Quando você conectar de novo via SSH e quiser voltar pra ver como está o processo, use:
tmux attach -t minha-sessao
Pronto! Você volta exatamente pra onde parou, como se nunca tivesse saído.
6. Listando todas as sessões abertas
Se você esqueceu o nome da sessão ou quer ver tudo que está rodando, digite:
tmux ls
Isso mostra uma lista com todas as sessões tmux ativas no servidor, com seus respectivos nomes.
7. Encerrando uma sessão (quando o processo já terminou)
Depois que o processo já foi concluído e você não precisa mais daquela sessão, entre nela com tmux attach -t minha-sessao e digite:
exit
Isso fecha a sessão de vez, liberando os recursos do servidor.
Comandos essenciais — resumo rápido
- Criar sessão:
tmux new -s nome - Sair sem encerrar (detach): Ctrl + B, depois D
- Voltar pra sessão (attach):
tmux attach -t nome - Listar sessões:
tmux ls - Encerrar sessão: digite
exitdentro dela
🌱 Dica da Sensei: crie o hábito de sempre nomear suas sessões de forma clara, tipotmux new -s backup-siteoutmux new -s importacao-dados. Assim, se você abrir várias sessões ao longo do tempo, fica muito mais fácil lembrar qual é qual quando rodar otmux ls.
Precisa de ajuda?
Se tiver qualquer dúvida durante o processo, ou se o tmux não estiver disponível no seu tipo de plano/ambiente, é só chamar o suporte da GeHost. Estamos aqui pra te ajudar a manter tudo rodando redondinho! 💙