Como rodar o tmux / screen com o systemd 230?

12

Eu corro 16.04 e systemd agora mata tmux quando o usuário desconecta ( resumo da alteração ).

Existe uma maneira de executar tmux ou screen (ou qualquer programa similar) com systemd 230? Eu li toda a discussão acalorada sobre os prós e contras do comportamento, mas não solução foi sugerida.

(também vejo o comportamento em 229)

    
por WoJ 24.07.2016 / 00:37

4 respostas

4

RemainAfterExit =

  

Recebe um valor booleano que especifica se o serviço deve ser considerado ativo mesmo quando todos os processos saírem. Padrões para não.

    
por Rinzwind 24.07.2016 / 00:44
15

A solução adequada é desabilitar o comportamento sistemático do sistema em questão.

Edite /etc/systemd/logind.conf (você deve sudo , é claro) e defina

KillUserProcesses=no

Você também pode colocar essa configuração em um arquivo separado, por exemplo, /etc/systemd/logind.conf.d/99-dont-kill-user-processes.conf .

Em seguida, reinicie o systemd-logind.service .

sudo systemctl restart systemd-logind
    
por Michael Hampton 24.07.2016 / 09:32
8

Com base na resposta do @Rinzwind e inspirada por uma descrição da unidade o melhor que consegui encontrar é usar TaaS (Tmux as a Service) - uma instância genérica de tmux one é reconectada.

# cat /etc/systemd/system/[email protected]

[Unit]
Description=tmux default session (detached)
Documentation=man:tmux(1)

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/tmux new-session -d -s %I
ExecStop=/usr/bin/tmux kill-server
KillMode=none

[Install]
WantedBy=multiplexer.target

# systemctl start [email protected]
# systemctl start [email protected]
# tmux list-sessions

instanceone: 1 windows (created Sun Jul 24 00:52:15 2016) [193x49]
instancetwo: 1 windows (created Sun Jul 24 00:52:19 2016) [193x49]

# tmux attach-session -t instanceone

(instanceone)#
    
por WoJ 24.07.2016 / 08:58
0

De acordo com o link que invoca tmux usando

systemd-run --user --scope tmux

também deve fazer o truque.

    
por phk 12.04.2017 / 23:42