首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从systemd服务文件中设置“`xhost`”

从systemd服务文件中设置“`xhost`”
EN

Unix & Linux用户
提问于 2020-06-09 10:16:50
回答 1查看 957关注 0票数 0

我想在每次系统启动时运行DISPLAY=:0 xhost +。(我知道xhost +的安全含义。)

这个在本地执行的命令工作得很好:

代码语言:javascript
运行
复制
username@hostname:`$ DISPLAY=:0 xhost +
access control disabled, clients can connect from any host

但是,当我想通过下面的systemd服务文件运行它时,它会失败,如下所示。

代码语言:javascript
运行
复制
username@hostname:/etc/systemd/system$ cat set-xhost.service 
[Unit]
Description=Set access control for X server

[Service]
Type=oneshot
Environment=DISPLAY=:0
ExecStart=/usr/bin/xhost +

[Install]
WantedBy=multi-user.target
代码语言:javascript
运行
复制
username@hostname:~$ sudo systemctl start set-xhost.service
Job for set-xhost.service failed because the control process exited with error code. See "systemctl status set-xhost.service" and "journalctl -xe" for details.

username@hostname:~$ sudo journalctl -u set-xhost.service
Jun 09 12:09:28 hostname systemd[1]: Starting Set access control for X server...
Jun 09 12:09:28 hostname xhost[7067]: No protocol specified
Jun 09 12:09:28 hostname xhost[7067]: /usr/bin/xhost:  unable to open display ":0"
Jun 09 12:09:28 hostname systemd[1]: set-xhost.service: Main process exited, code=exited, status=1/FAILURE
Jun 09 12:09:28 hostname systemd[1]: Failed to start Set access control for X server.
Jun 09 12:09:28 hostname systemd[1]: set-xhost.service: Unit entered failed state.
Jun 09 12:09:28 hostname systemd[1]: set-xhost.service: Failed with result 'exit-code'.

背后的原因是什么?据我所知,这应该管用。这说明我错过了这方面的一些重要知识。

EN

回答 1

Unix & Linux用户

发布于 2020-06-09 12:53:33

由于您没有指定任何依赖项(如After= ),systemd通常会在引导过程中尽快运行您的服务。

很有可能“尽快”在实际的X11服务器启动之前就结束了。只有当xhost能够与正在运行的X11服务器联系时,它才能工作。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/591792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档