deepin V25 磐石系统下添加系统服务

在上一篇文章《配置 UOS/deepin 系统远程桌面,实现多台电脑协同办公》中介绍了在国产系统 UOS/deepin 下添加 VNC 服务,实现远程桌面访问,但是将该方法应用到 deepin V25 上时,却碰到了问题。这是由于 V25 系统引入了磐石系统,这是一种不可变文件系统,根文件系统通常是只读的。即使拥有 root 权限,也无法将文件写入根文件系统。比如执行以下命令:

sudo vi /lib/systemd/system/x11vnc.service

最后保存时却提示:

查了一下资料,发现 systemd 有用户级服务(user service)的概念,即在用户 HOME 目录下创建服务文件,然后通过 systemctl --user 命令来管理。

下面说明一下通过用户级 systemd 服务添加 x11vnc 服务的步骤。

1. 创建用户服务单元文件

在用户目录下新建.service文件:~/.config/systemd/user/x11vnc.service。内容如下:

[Unit]
Description="x11vnc"
After=display-manager.service

[Service]

ExecStart=/usr/bin/x11vnc -auth guess -loop -forever -safer -shared -ultrafilexfer -bg
ExecStop=/usr/bin/killall x11vnc

[Install]
WantedBy=default.target

2. 启用并管理服务

执行以下命令激活用户级服务:

systemctl --user daemon-reload
systemctl --user enable --now x11vnc.service  # 启用服务
systemctl --user start x11vnc.service  # 启动服务
systemctl --user status x11vnc.service  # 检查服务状态

此方法无需 root 权限,服务生命周期与用户会话绑定。

不过,这种方法有一个缺点,就是系统启动后,需要登录进去,这个服务才会启动。这也不难理解,因为服务是绑定在用户会话上的,不登录进去,服务自然也就无法启动。

有没有更好的方法呢?后来还是被我找到了,磐石系统虽然根文件系统是只读的,但允许在 /etc/systemd/system/ 下添加服务文件,因为这些目录位于独立可写分区。

接下来的操作就非常简单了,直接在 /etc/systemd/system/ 下创建 x11vnc.service 文件即可。

sudo vi /etc/systemd/system/x11vnc.service

将如下内容粘贴到文件中:

[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service
 
[Service]
ExecStart=/usr/bin/x11vnc -auth guess -loop -forever -safer -shared -ultrafilexfer -bg -o /var/log/x11vnc.log
ExecStop=/usr/bin/killall x11vnc
 
[Install]
WantedBy=multi-user.target

接下来启用并启动系统服务:

# 重新加载systemd配置
sudo systemctl daemon-reload
 
# 设置开机自启
sudo systemctl enable x11vnc
 
# 立即启动服务
sudo systemctl start x11vnc
 
# 验证服务状态
sudo systemctl status x11vnc

这种方法和上一篇文章方法一样,区别就在于创建的 x11vnc.service 文件位置不同。

至此,问题得到解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云水木石

但行好事,莫问前程

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值