建造:数据中心的服务器装有 Ubuntu 18.04,并配备 Ubuntu Mate 桌面界面。
据我所知,任何 GUI 应用程序都需要一个显示器才能运行。我使用 x2go 通过 ssh 连接到服务器以显示 ubuntu mate 界面。连接后,我有一个计划的 cron 作业,用于启动终端、GUI 和一些命令。
一切都运行完美,因为我之前已经检测到我作为用户正在使用的显示器并指定该显示器来启动终端和命令。
问题:如果我没有通过 x2go 客户端连接到服务器并提供该显示,我今天注意到 cron 作业没有在特定时间(08:50)启动,该时间早于我的 x2go 客户端连接(09:23);它只是在我手动从我的桌面进行 x2go 客户端连接时启动 - 我的理解是它没有启动是因为没有任何可用的显示。
我的技术水平不够,无法深入解决这个问题。
有没有什么方法可以使 cron 脚本运行(即启动终端和 GUI),而无需手动进入我的桌面并启动远程桌面客户端(x2go)?
我的想法是在该数据中心内再设置一个最小设置,或者利用该数据中心的优势,使用一个物理监视器来持续显示与主服务器的连接,或者每天通过 x2go 手动进入服务器。
编辑:当我断开 x2go 客户端会话与服务器的连接时,启动的 GUI 等会完美地保持,不会因为“我已终止会话并消除显示”而消失
答案1
在理解了如何处理会话和之后,最终在其中一位x2go
创始人 (Oleksandr Shneyder)的大力帮助下使其开始运行。x2go
X server
会话可以暂停/休眠、断开连接和终止。
暂停/休眠:当“手动”或自动时x2go
服务器端会暂停,以节省资源。
已断开连接:当您退出会话窗口和x2go
台式机/笔记本电脑中的客户端时。
终止日期:当您从 DE 环境注销或x2goterminate-session
在会话内的终端中发出命令时。
我的x2go
应用程序不知何故在服务器中进入了挂起模式,导致需要运行计划的 cronjob 并启动 GUI 的显示器(在我的情况下为 50)“未被唤醒”,直到我通过应用程序进入会话。那一刻,cronjob 开始执行。
为了告诉x2go
服务器不要休眠,我需要将其X2GO_NXOPTIONS
更改/etc/x2go/x2goagent.options
为X2GO_NXOPTIONS="sleep=0"
此后,服务器上的一切功能均正常运行。
希望它能帮助其他人。