Как запустить tmux/screen с systemd > 230?
Я бегу 16.04 и systemd
сейчас убивает tmux
когда пользователь отключается ( сводка изменений).
Есть ли способ запустить tmux
или же screen
(или любая подобная программа) с systemd
230? Я прочитал всю горячую дискуссию о плюсах и минусах поведения, но решения не было предложено.
(Я также вижу поведение в 229)
5 ответов
Принимает логическое значение, которое указывает, должна ли служба считаться активной, даже если все ее процессы завершены. По умолчанию нет.
Правильным решением является отключение оскорбительного поведения systemd во всей системе.
редактировать /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)#
Используя Ubuntu 18.04 с systemd версии 237, ни одно из предложенных решений не помогло мне.
Решение, которое работало для меня, состояло в том, чтобы
- редактировать
/etc/systemd/logind.conf
- раскомментировать
KillExlcudeUsers
- добавить разделенный пробелами список пользователей (например,
KillExlcudeUsers=root user1 user2
)
Согласно https://unix.stackexchange.com/a/287282/117599 tmux
с помощью
systemd-run --user --scope tmux
также должен сделать свое дело.
Вам нужно установить Type
службы для forking
, как объяснено здесь.
Давайте предположим, что сервис, в котором вы хотите запустить screen
называется minecraft
, Тогда вы бы открыли minecraft.service
в текстовом редакторе и добавьте или отредактируйте запись Type=forking
под разделом [Service]
,