Запрет выхода из сеанса Killing tmux

13

Я заметил, что выход (выход) из моего сеанса пользователя X уничтожит любой tmuxсеанс, который я инициировал, даже сеансы, с которыми я работал, sudo tmuxи подобные команды. Я уверен, что этого раньше не было, но некоторые недавние изменения повлияли на это поведение.

Как мне поддерживать эти tmux(или screen) сеансы, даже после того, как я закончу свой сеанс X?

palswim
источник
если вы заинтересованы, unix.stackexchange.com/questions/490243/…
Тим
Что такое «сеанс пользователя X», с которого вы «выходите из системы»? Его имя процесса ...?
Тим
Хотя я не думаю, что это особенно удобно, вы можете начать сеанс tmux вне X, то есть на tty1, как описано здесь: unix.stackexchange.com/a/167388/67833
Рольф

Ответы:

16

Это «особенность» существовала в systemdранее, но эти systemdразработчиках решили произвести изменения в значениях по умолчанию , чтобы включить параметр для прекращения дочерних процессов при выходе из сеанса.

Вы можете восстановить эту настройку в вашем logind.conf( /etc/systemd/logind.conf):

KillUserProcesses=no

Вы также можете запустить tmuxс systemd-runоберткой, как показано ниже:

systemd-run --scope --user tmux

Для этих систем вы можете просто использовать псевдоним команды tmux(или screen):

alias tmux="systemd-run --scope --user tmux"
palswim
источник
Дополнительное обсуждение в ветке reddit .
Palswim
3
... и во многих других местах. В сообщении об ошибке Debian я объяснил, как на самом деле можно сделать systemd-logindправильные вещи. bugs.debian.org/cgi-bin/bugreport.cgi?bug=825394#221
JdeBP
@JdeBP Спасибо за сообщение, что отправка SIGHUP вместо SIGTERM и SIGKILL позволяет демонам пережить закрытие сеанса systemd logind. Я также был бы признателен, если бы вы также рассмотрели unix.stackexchange.com/questions/484344/… и unix.stackexchange.com/a/490435/674
Тим