有时,重新启动后,我的一些具有 GUI 的应用程序会关闭。这些应用程序也提供 Web 界面,但前提是它们的 GUI 部分处于打开状态。如果该单元对我来说是物理可用的,我可以使用屏幕命令启动一个屏幕,从中分离,如果我需要打开任何其他需要 GUI 的东西,我可以重新连接到同一个屏幕来完成任务。IE > 在服务器上(物理上)
screen -S display
然后,我就可以登录任何一台计算机了(通过 ssh 远程登录)
screen -r display
transmission-gtk&
上述代码将打开 transmission-gtk
但是,如果我没有将屏幕连接到物理机器,transmission-gtk 将输出
error, no display attached.
注意:我知道有命令行传输以及大多数其他应用程序。然而,这是我想要做的方式。
所以问题来了!如何在启动时创建该“屏幕”。我应该把它放在哪个 RC 中。
谢谢
答案1
我的起点是 rc.local。
答案2
我认为“错误,没有连接显示”的发生是因为您正试图从屏幕终端。我可能错了,但据我所知,屏幕与 GUI 显示器无连接。
但要回答你的问题,@rlduffy 建议使用 rc.local 是一个很好的起点。你需要在 rc.local 中添加一行,如下所示,以启动屏幕分离模式下的进程:
/bin/su --login -c "/usr/bin/screen -d -m -t myscreen /bin/sh -c command_you_want_to_run" preferred_useracct
由于 rc.local 在所有其他启动过程之后运行,因此不再存在使用哪个 RC 级别的问题。您可以使用屏幕-r 我的屏幕重新连接到你的分离屏幕流程。
答案3
好的。虽然时间有点久了,但这是“部分”解决方案。
如果在桌面上,我启动一个终端会话并启动一个screen
。新建的终端会话/screen
可以访问x11
内容。
因此,我可以transmission-gtk
通过 ssh 登录并重新连接屏幕从命令行启动或执行任何操作。
如果您找到在启动时从 GUI 启动屏幕的方法,请添加到此内容。