Ubuntu

Ubuntu

当通过控制台通过屏幕启动进程时,这些进程会在注销时被终止。

login: root
password: ***

然后启动一些命令:

screen -d -S sample -m bash -c '/hom/app/server start'

此后服务开始运行并且屏幕显示该进程

screen -ls

# output
# There are screens on:
#   1805.sample (01/05/24 12:13:18) (Detached)
# 1 Sockets in /run/screen/S-root.

但是当我注销时,屏幕会话也将被破坏。

通过 root(使用 RootLoginPermit)在同一台计算机上执行相同的操作,ssh所有内容也会在注销后运行。

我在 Ubuntu 20.04 和 22.04 上测试了相同的操作。

当通过控制台会话启动时,它在 Ubuntu 20.04 上也没有问题。

但它不适用于 Ubuntu 22.04,也不适用于控制台。

这是 Debian(测试了 bullseye 和 bookworm 的最新更新)和 Ubuntu(测试了 22.04)上的问题。

KillUserProcesses=no默认情况下会检查并设置所有找到的解决方案。我还安装了一个具有相同行为的全新 Debian。


在 debian 和 ubuntu 上它始终是相同的屏幕版本Screen version 4.08.00 (GNU) 05-Feb-20


Ubuntu

  1. 从 Ubuntu 20.04 进行全新安装
  2. 分离模式下的运行屏幕
  3. 注销并再次登录
  4. 屏幕进程仍然存在

  1. 将 Ubuntu 版本升级到 Ubuntu 22.04
  2. 分离模式下的运行屏幕
  3. 注销并再次登录
  4. 屏幕进程被杀死

德比安

  1. 从 Debian 10 进行全新安装
  2. 分离模式下的运行屏幕
  3. 注销并再次登录
  4. 屏幕进程仍然存在

  1. 将 Debian 版本升级到 Debian 11
  2. 分离模式下的运行屏幕
  3. 注销并再次登录
  4. 屏幕进程被杀死

因此,发布中存在一些重大但目前我尚不清楚的变化。

相关内容