新闻详情

新闻详情

首页 / 资讯中心 / 详情

RustDesk Linux 安装包安装后如何配置并启动 rustdesk.service 系统服务?

发布时间:2026/9/9 21:43:07来源:尧图网络
RustDesk Linux 安装包安装后如何配置并启动 rustdesk.service 系统服务?
RustDesk Linux 安装包安装后如何配置并启动 rustdesk.service 系统服务【免费下载链接】rustdeskAn open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.项目地址: https://gitcode.com/GitHub_Trending/ru/rustdeskRustDesk 的 Linux 安装包.deb、RPM、Arch在系统内真正承担被控端职责的是rustdesk.service这个 systemd 单元安装脚本会在安装时把单元文件注册进 systemd 并执行enablestart。本文基于仓库中安装包自带的脚本res/DEBIAN/postinst、res/rpm.spec、res/pacman_install和单元文件 res/rustdesk.service说明三种包各自做了什么、单元文件的关键字段、Ubuntu 18.04 上已知的注册报错如何修以及如何手动补跑注册与启动序列。适用前提是系统以 systemd 作为 init 系统。安装包安装时自动完成的服务注册三种包的安装脚本都包含同一条核心序列把单元文件复制到系统目录 →systemctl daemon-reload→systemctl enable rustdesk→systemctl start rustdesk区别在单元文件的落地位置包类型单元文件安装位置来源脚本Debian / Ubuntu (.deb)/usr/lib/systemd/system/rustdesk.serviceres/DEBIAN/postinstRPMCentOS / SUSE/etc/systemd/system/rustdesk.serviceres/rpm.spec 的%postArch Linux/etc/systemd/system/rustdesk.serviceres/pacman_install 的post_install()几个与服务是否会被正确拉起直接相关的细节Debian 包会先检查 init 系统。postinst通过ls -al /proc/1/exe判断 1 号进程只有结果为systemd时才执行单元文件复制和服务注册同时它把/usr/share/rustdesk/rustdesk软链到/usr/bin/rustdesk这条软链正是单元文件ExecStart指向的路径。Debian 包注册前会清理旧的单元文件。若存在/etc/systemd/system/rustdesk.service脚本会先删除/etc、/usr/lib/systemd/system和/usr/lib/systemd/user下的旧文件再安装新的避免旧单元残留。RPM 包升级时先停服务。res/rpm.spec 的%pre在升级场景参数为 2执行systemctl stop rustdesk || true%post再复制新单元文件并重新enable/startArch 包的pre_upgrade()同样是先systemctl stop rustdesk || true。Debian 包的postinst带set -e即daemon-reload、enable、start任一步失败dpkg 安装流程会直接报错中止安装成功的包意味着服务启动序列没有中断。rustdesk.service 单元文件的关键字段单元文件本体见 res/rustdesk.service决定运行行为的关键项如下[Unit] DescriptionRustDesk Requiresnetwork.target Aftersystemd-user-sessions.service [Service] Typesimple ExecStart/usr/bin/rustdesk --service ExecStoppkill -f rustdesk -- PIDFile/run/rustdesk.pid KillModemixed TimeoutStopSec30 Userroot LimitNOFILE100000 EnvironmentPULSE_LATENCY_MSEC60 PIPEWIRE_LATENCY1024/48000 [Install] WantedBymulti-user.target需要注意的几点均按单元文件中的原文与注释理解ExecStart/usr/bin/rustdesk --service服务以--service模式运行这也是 Debian 包先建立/usr/bin/rustdesk软链的原因。Userroot服务以 root 身份运行这是被控端接受远程连接所依赖的运行前提。ExecStoppkill -f rustdesk --单元文件注释明确说明这一行的作用是同时结束--tray和--server进程且注释指出拆成两行分别 kill 的写法do not work必须使用这一整行。因此停止服务时与rustdesk --匹配的进程都会被 pkill 结束执行前确认没有其他同名命令行依赖。WantedBymulti-user.targetsystemctl enable rustdesk之后服务在 multi-user 目标下随系统自启。Requiresnetwork.target与Aftersystemd-user-sessions.service规定了启动的网络与会话依赖顺序。安装后需要手工修正的配置Ubuntu 18.04 上的 Exec format error 报错res/DEBIAN/postinst 中记录了 Ubuntu 18.04 上的真实报错Failed to reload rustdesk.service: Unit rustdesk.service is not loaded properly: Exec format error. /usr/lib/systemd/system/rustdesk.service:10: Executable path is not absolute: pkill -f rustdesk --原因是该版本 systemd 要求ExecStop中的可执行路径为绝对路径。脚本给出的修复方式是前提是/usr/bin/pkill存在脚本中有[ -e /usr/bin/pkill ]判断sed -i s|pkill|/usr/bin/pkill|g /usr/lib/systemd/system/rustdesk.service systemctl daemon-reload这条sed会把单元文件中所有pkill替换为/usr/bin/pkill只应针对上述Executable path is not absolute报错使用。手动补跑单元文件注册与启动如果单元文件未就位例如手工修改过单元内容、或安装时脚本序列中断按各包脚本中的命令补跑即可。RPM / Arch 的注册位置是/etc/systemd/system/cp /usr/share/rustdesk/files/rustdesk.service /etc/systemd/system/rustdesk.service systemctl daemon-reload systemctl enable rustdesk systemctl start rustdeskDebian 系统的单元文件路径改为/usr/lib/systemd/system/rustdesk.service随后执行同样的daemon-reload/enable/start三条命令。这些命令要求 root 权限。启动、停止与状态检查日常操作沿用 systemd 标准命令systemctl daemon-reload # 修改单元文件后必做 systemctl enable rustdesk # 设置开机自启 systemctl start rustdesk systemctl status rustdesk # 检查服务当前状态判断依据以安装脚本自身的行为为准Debianpostinst带set -e注册序列中任何一步失败都会使 dpkg 安装报错daemon-reload阶段若单元文件有问题会看到上文 Ubuntu 18.04 那样的加载错误。升级场景不需要手工干预——%pre/pre_upgrade()会先systemctl stop rustdesk || true随后%post/post_upgrade()复制新单元并重新enablestart。限制与卸载时的处理三个包的服务注册逻辑都面向 systemdDebianpostinst只在 1 号进程为systemd时注册服务非 systemd 系统安装后不会有自启的rustdesk.service需自行用其他 init 方式管理/usr/bin/rustdesk --service。服务以 root 运行UserrootLimitNOFILE100000与音频延迟环境变量PulseAudio / PipeWire均在单元文件中固定属于被控端服务的既定运行参数。卸载时各包脚本会负责清理Debian res/DEBIAN/prerm 执行systemctl stop/disable并删除/etc与/usr/lib下的单元文件及/usr/bin/rustdesk软链Archpre_remove()执行systemctl stop、systemctl disable并删除/etc/systemd/system/rustdesk.serviceRPM 的%preun在卸载场景做同样的 stop / disable / 删除操作。手工卸载时按同一顺序操作即可不要遗漏disable否则残留的启动项指向已删除的二进制。【免费下载链接】rustdeskAn open-source remote desktop application designed for self-hosting, as an alternative to TeamViewer.项目地址: https://gitcode.com/GitHub_Trending/ru/rustdesk创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

如何在 NW.js 桌面应用中使用 Socket.IO 连接 Node.js 服务器 2026/9/9 22:22:22

如何在 NW.js 桌面应用中使用 Socket.IO 连接 Node.js 服务器

如何在 NW.js 桌面应用中使用 Socket.IO 连接 Node.js 服务器 【免费下载链接】socket.io Bidirectional and low-latency communication for every platform 项目地址: https://gitcode.com/gh_mirrors/so/socket.io 要在 NW.js 桌面应用中和 Node.js 服务器做双向通信…

阅读更多 →
Qt实战指南:环境配置、崩溃定位与事件循环全解析 2026/9/9 22:22:22

Qt实战指南:环境配置、崩溃定位与事件循环全解析

写“QT高阶日记007”这期的时候,我手头正躺着一个工业上位机项目,界面要跑在Linux工控机上,天天面对的不只是界面设计,还有崩溃定位、交叉编译、事件循环这种绕不开的问题。跟群里几个搞Qt的老哥聊了一圈,发现大家踩的…

阅读更多 →
SRC挖洞前的准备工作,零基础也能搭好环境 2026/9/9 22:22:22

SRC挖洞前的准备工作,零基础也能搭好环境

系列导读:本文是《SRC漏洞挖掘系列》第2期。第1期我们聊了什么是SRC、它的基本价值,以及为什么授权范围比工具更重要——还没看过的朋友可以先补上那一篇。为什么你“挖不到洞”?可能问题出在起跑线上后台经常收到类似留言:“跟着…

阅读更多 →
Altium Designer实战:从软件安装到封装库与模板体系搭建 2026/9/9 22:22:22

Altium Designer实战:从软件安装到封装库与模板体系搭建

简介:这份资源是Altium Designer实战教程的配套资料包,面向想从零绘制STM32最小系统板并完成工厂打板的电子爱好者及初学者。教程基于AD17展开,其他版本亦可参考学习,覆盖原理图设计、封装制作、PCB布局到打板下单全流程。压缩包共…

阅读更多 →
安卓手机U盘传输全攻略:OTG、权限与格式问题详解 2026/9/9 22:22:22

安卓手机U盘传输全攻略:OTG、权限与格式问题详解

前几天有朋友问我:手机里存了两千多张照片和几个视频,想一次性拷到U盘里给爸妈,到底怎么弄最省事。我回了句“用OTG线插U盘,文件管理器复制就行”,结果他第二天跟我说插上没反应,文件管理器里也找不到U盘。…

阅读更多 →
Ansible 自定义模块如何处理错误?直接 raise 异常与 fail_json 的正确用法 2026/9/9 22:19:21

Ansible 自定义模块如何处理错误?直接 raise 异常与 fail_json 的正确用法

Ansible 自定义模块如何处理错误?直接 raise 异常与 fail_json 的正确用法 【免费下载链接】ansible Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from c…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞