允许程序在注销后继续运行
默认情况下,构建 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 支持会话暂停和重新连接,即使是从不同的客户端。虽然设计用于远程访问,但即使在本地主机上也可以使用。