Cegah Logoff dari Membunuh Sesi tmux

13

Saya perhatikan bahwa logoff (logout) dari sesi pengguna X saya akan mematikan tmuxsesi apa pun yang telah saya mulai, bahkan sesi yang telah saya jalankan sudo tmuxdan perintah serupa. Saya yakin ini sebelumnya tidak terjadi, tetapi beberapa perubahan baru-baru ini mempengaruhi perilaku ini.

Bagaimana saya mempertahankan sesi tmux(atau screen) ini, bahkan setelah saya mengakhiri sesi X saya?

palswim
sumber
Apa itu "sesi pengguna X" yang Anda "logout"? Nama prosesnya adalah ...?
Tim
Meskipun saya tidak berpikir ini sangat berguna, Anda dapat memulai sesi tmux di luar X, yaitu pada tty1 seperti yang dijelaskan di sini: unix.stackexchange.com/a/167388/67833
Rolf

Jawaban:

16

Ini "fitur" telah ada di systemdsebelumnya, tapi yang systemdpengembang memutuskan untuk efek perubahan default , untuk mengaktifkan pengaturan untuk penghentian proses anak pada log out dari sesi.

Anda dapat mengembalikan pengaturan ini di logind.conf( /etc/systemd/logind.conf):

KillUserProcesses=no

Anda juga dapat menjalankan tmuxdengan systemd-runpembungkus seperti berikut:

systemd-run --scope --user tmux

Untuk sistem ini, Anda mungkin hanya ingin alias perintah tmux(atau screen):

alias tmux="systemd-run --scope --user tmux"
palswim
sumber
Diskusi tambahan di utas reddit .
palswim
3
... dan di banyak tempat lain. Dalam bug Debian yang merujuk pada hal itu, saya menjelaskan bagaimana seseorang dapat systemd-logindmelakukan hal yang benar. bugs.debian.org/cgi-bin/bugreport.cgi?bug=825394#221
JdeBP
@JdeBP Terima kasih telah memberi tahu kami bahwa mengirim SIGHUP alih-alih SIGTERM dan SIGKILL memungkinkan daemon selamat dari penutupan sesi logd systemd. Saya juga akan menghargai jika Anda juga dapat mempertimbangkan unix.stackexchange.com/questions/484344/… dan unix.stackexchange.com/a/490435/674
Tim