首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何设置x11vnc,以便在启动时使用lightdm启动?

如何设置x11vnc,以便在启动时使用lightdm启动?
EN

Unix & Linux用户
提问于 2021-06-07 14:04:16
回答 1查看 5.2K关注 0票数 2

我有一个X服务器,所有配置和运行与LightDM和GNOME桌面。我安装了x11vnc来访问X服务器。我在GNOME中打开一个终端并运行x11vnc。这让我可以访问真正的X服务器,但是我想要自动启动它。我可以将x11vnc放在~/.xprofile中,以便在登录LightDM之后启动,但我更希望在LightDM启动后立即启动,这样当我登录VNC时,就可以看到LightDM提示符。我该怎么做呢?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2021-06-07 14:04:16

可以通过添加systemd服务来启动x11vnc服务器,启动After= LightDM。确保服务是在用户lightdm下运行的,这样就不会出现令人讨厌的XAuthority No protocol specified错误。

/etc/systemd/system/x11vnc@..service:

代码语言:javascript
运行
复制
[Unit]
Description=Remote desktop service (VNC)
After=display-manager.service

[Service]
Type=simple
User=lightdm
ExecStart=/usr/bin/x11vnc -display %i                      
Restart=always
RestartSec=3

[Install]
WantedBy=graphical.target

After=display-manager.service告诉systemd显示管理器(LightDM)需要运行才能启动该服务。

Type=simple说进程是非分叉的,ExecStart下的命令在VNC服务器的生命周期内一直在运行。

User=lightdm说,ExecStart下的进程应该由用户lightdm运行,用户D9的目的是在LightDM登录提示期间运行X客户端。这个用户拥有X服务器,因此为了让应用程序在登录提示符中运行,您需要以这个用户的身份运行它们。

ExecStart=/usr/bin/x11vnc -display %i是在此服务被激活时运行的命令,它表示启动x11vnc on display %i,它指的是启动服务时在"@“符号之后出现的任何内容。

Restart=always说,每当服务启动失败时,再试一次。

RestartSec=3说每次重试都要等待3秒。

WantedBy=graphical.target说,每当systemd打开图形系统(遗留的运行级5)时,都要运行服务。

要加载单元(使systemd“查看”它),请运行以下命令

代码语言:javascript
运行
复制
# systemctl daemon-reload

若要启用它(使其在引导时启动),请运行以下命令

代码语言:javascript
运行
复制
# systemctl enable x11vnc@

如果是您希望给VNC访问权限(通常是:0)启动它的X显示器,则运行以下命令

代码语言:javascript
运行
复制
# systemctl start x11vnc@

也是如此。

注意,您可以在同一个单元文件下运行多个独立的服务,方法是在"@“之后传递不同的显示。例如,您可以在X上运行多个VNC服务器,分别显示:0:1:2,在端口590059015902上运行x11vnc@:0x11vnc@:1x11vnc@:2

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

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

复制
相关文章

相似问题

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