Я запускаю 16.04 и systemd теперь убивает tmux, когда пользователь отключается (сводка изменений).
Есть ли способ запустить tmux или screen (или любой другой подобный программа) с systemd 230? Я прочитал все расплывчатое рассуждение о плюсах и минусах поведенческого, но решения не было предложено.
(Я также вижу поведение в 229)
Правильное решение состоит в том, чтобы отключить поведение системы оскорбительных систем в целом.
Измените /etc/systemd/logind.conf (конечно, вы должны sudo) и установите
KillUserProcesses=no
Вы можете также поместите этот параметр в отдельный файл, например /etc/systemd/logind.conf.d/99-dont-kill-user-processes.conf.
Затем перезапустите systemd-logind.service.
sudo systemctl restart systemd-logind
Основываясь на ответе @ Rinzwind и вдохновленном описанием единицы, я мог бы найти лучшее, что я мог найти, это использовать TaaS (Tmux как услугу) - общий отдельный экземпляр tmux, к которому он привязан.
# cat /etc/systemd/system/tmux@.service
[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 tmux@instanceone.service
# systemctl start tmux@instancetwo.service
# 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)#
В соответствии с https://unix.stackexchange.com/a/287282/117599, вызывающим tmux с помощью
systemd-run --user --scope tmux
, также следует выполнить трюк.