允许程序在注销后继续运行

出自 ArchWiki

默认情况下,构建 systemd 软件包的目的不是在注销时杀死用户进程,请参阅 Systemd/User#在注销时杀死用户进程

有几种方法可以让程序在注销后继续运行

X 应用程序

由于 xmove 已不再维护,您可能需要使用其他方法。

辅助 X 服务器

创建一个包含以下内容的脚本,并使其可执行

#!/bin/sh

if [ $# -eq 0 ] ; then # check to see if arguments are given (color depth)
    a=24        # default color depth
else
    a=$1        # use given argument
fi

if [ $a -ne 8 -a $a -ne 16 -a $a -ne 24 ] ; then
    echo "Invalid color depth. Use 8, 16, or 24."
    exit 1
fi

for display in 0 1 2 3 4 5 ; do
    if [ ! -f "/tmp/.X$display-lock" ] ; then
        exec startx -- :$display -depth $a -quiet
        exit 0
    fi
done

echo "No displays available."
exit 1

执行这个小脚本将启动一个新的 X 服务器。然后您可以简单地启动您的应用程序并使用 xlock -mode blank 锁定服务器(您需要 xlockmore 软件包才能使用 xlock(1))。

不要在第一个 X 服务器中启动您的应用程序。如果尚未启动,请先启动第一个,然后再启动第二个。使用第二个服务器来运行您的应用程序。

这很重要,因为某些功能(如 AGP 模式)仅在一个 X 服务器上有效,并且如果由于您为了自己的目的而启动了 X 服务器而导致这些功能缺失,计算机的其他用户将会感到恼火。因此,只需使用第二个服务器,第一个服务器将为所有需要它的人提供完整的功能。

xpra

Xpra 允许您启动 X 程序,并在断开连接后保持运行,以便稍后重新连接。可以在远程计算机上启动 X 程序,通过 SSH 连接到该计算机,断开连接并重新连接,而程序将继续运行。

X2Go

X2Go 支持会话暂停和重新连接,即使是从不同的客户端。虽然设计用于远程访问,但即使在本地主机上也可以使用。