我正在尝试为具有 GUI 的程序编写一个单元服务文件。
我有一个 ubuntu 服务器数字海洋我用 TightVNC 连接到它来显示:2。
GUI 需要用户名和密码才能在线登录我的帐户。当这个程序打开时,它允许通过端口 4002 连接到他们的服务器并使用 python 脚本在线请求数据。
该程序可以在终端中使用给定的用户名和密码进行身份验证。下面将打开程序,自动登录我的帐户,并显示程序 GUI。
$ /home/user1/ibg/ibg username=*** password=***
我写的单元文件如下:
[Unit]
Description=my service
After=network.target
[Service]
Type=simple
ExecStart=/home/user1/ibg/ibg username=*** password=***
Restart=always
[Install]
WantedBy=multi-user.target
该服务处于活动状态并正在运行,但我收到以下消息,我认为这会阻止该服务真正发挥作用。我可以从我的 python 脚本不工作的事实中看出这一点。相反,如果我打开程序 GUI,并登录到我的帐户,则 python 程序可以正常运行。
No X11 display variable was set, but this program performed an operation that requires it.
at java.awt.SplashScreen.getSplashScreen(SplashScreen.java:117)
有人可以帮我解决这个问题吗?
答案1
您是否尝试过将DISPLAY
变量设置为:2
适合您的服务ExecStart
环境?
您可以选择Environment=
直接在[Service]
单元文件部分中使用该标志,也可以使用.conf
该问题中得票最高的答案中描述的文件方法。