Как выполнить tmux/screen с systemd> 230?

Я работаю 16.04 и systemd теперь уничтожает tmux когда пользователь разъединяется (сводка изменения).

Есть ли способ работать tmux или screen (или любая подобная программа) с systemd 230? Я считал весь горячий disussion о за и против поведений, но никакое решение не было предложено.

(Я вижу поведение в 229 также),

18
задан 2 August 2018 в 14:06

6 ответов

Используя Ubuntu 18.04 с systemd версией 237, ни одно из предложенных решений не работало на меня.

Решение, которое работало на меня, было к

  • отредактируйте /etc/systemd/logind.conf
  • некомментарий KillExlcudeUsers
  • добавьте, что пространство разделило список пользователей (например, KillExlcudeUsers=root user1 user2)
1
ответ дан 23 November 2019 в 02:06

RemainAfterExit =

Принимает булево значение, которое указывает, нужно ли сервис считать активным даже когда все его процессы, из которых выходят. Значения по умолчанию к нет.

5
ответ дан 23 November 2019 в 02:06

Надлежащее решение состоит в том, чтобы отключить оскорбление 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
18
ответ дан 23 November 2019 в 02:06

Согласно https://вызов tmux unix.stackexchange.com/a/287282/117599 с помощью

systemd-run --user --scope tmux

должен также добиться цели.

0
ответ дан 23 November 2019 в 02:06

На основе ответа @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)#
11
ответ дан 23 November 2019 в 02:06

Необходимо установить Type из сервиса к forking, как объяснено здесь.

Давайте примем сервис, в котором Вы хотите работать screen назван minecraft. Затем Вы открылись бы minecraft.service в текстовом редакторе и добавляют или редактируют запись Type=forking под разделом [Service].

2
ответ дан 23 November 2019 в 02:06

Другие вопросы по тегам:

Похожие вопросы: