Estou tentando executar o tmux como um serviço de usuário do systemd ~/.config/systemd/user/tmux.service
. Quando inicio o serviço systemd --user start tmux
e executo o tmux a partir de um terminal, ele parece se conectar corretamente ao servidor tmux do serviço.
No entanto, quando fecho a última sessão, o serviço tmux é interrompido. Isso é um problema porque quero que o servidor tmux permaneça disponÃvel para clientes SSH. Como evito que o servidor tmux pare automaticamente após o fechamento da última sessão?
[Service]
Type=forking
ExecStart=tmux new-session -s %u -d
ExecStop=tmux kill-session -t %u
[Install]
WantedBy=default.target
Solução:
[Service]
Type=forking
ExecStart=tmux new -s dummy -d
ExecStop=-tmux kill-server
Restart=on-success
[Install]
WantedBy=default.target
O tmux tem uma opção
exit-unattached
que diz Se habilitado, o servidor sairá quando não houver clientes conectados , que você pode desabilitar comno seu
~/.tmux.conf
, mas isso não parece ter nenhum efeito para mim (ligado ou desligado), ou eu não entendi o que isso significa.Você pode pedir ao systemd para reiniciar seu serviço ao sair adicionando a linha
Você também precisa editar o
ExecStop
prefixo com o comando-
para ignorar a falha dokill-session
comando ao reiniciar (porque o servidor não está mais em execução até então).A partir de agora, se você adicionar esta linha ao
.tmux.conf
arquivo, o servidor não será desligado quando não tiver sessões:set -g exit-empty off