我正在运行 KDE Neon,它是 Ubuntu 18.04 Bionic (LTS),其上有最新的 KDE 桌面软件包。
自从从 Xenial 升级到此版本以来,我失去了进程在 SSH 会话断开连接后继续存在的能力...特别是 nohup、tmux、screen、byobu 及其所有子进程在断开连接时都会被杀死。
这是一个简单的测试来演示这个问题
# connect over ssh
cd /tmp
nohup watch date &
ps -ef | grep watch
# disconnect and reconnect
ps -ef | grep watch # process is gone
Run Code Online (Sandbox Code Playgroud)
我尝试将 tmux 和 byobu 恢复到旧版本,然后发现 nohup 也受到影响。这让我相信它要么是 SSHd 配置,要么是 systemd。
显然,systemd 决定更改其默认行为,以便在用户前一段时间断开连接时核对所有用户进程。我尝试通过编辑 /etc/systemd/logind.conf 并设置 KillUserProcesses=no 然后重新启动(服务 systemd-logind 重新启动不起作用)来恢复该行为。没用……我已经束手无策了。
帮助!