Linux系统上电自启与Systemd服务配置实战指南
1. 项目概述为什么“上电开机自运行”是嵌入式与工控的基石刚入行做嵌入式开发或者工业控制的朋友可能都遇到过这样的需求设备一插上电就要像家里的电视一样自己“滴”一声启动起来然后默默地在后台把该干的活都干了比如采集数据、运行服务、控制某个流程。这个看似简单的“上电开机程序自运行”组合其实是实现设备无人值守、稳定可靠运行的基石。它绝不仅仅是改个BIOS设置或者拖个快捷方式到启动文件夹那么简单尤其是在Linux环境下涉及到从硬件上电时序、Bootloader引导、内核启动到用户空间服务管理的完整链条。我遇到过不少项目前期功能测试都好好的一到现场部署就出问题停电再来电后设备“睡”过去了或者程序没跑起来导致整个生产线停摆。问题的根源往往就出在对开机自启流程的理解不透彻、配置不完整上。今天我就结合自己踩过的坑把这套流程从硬件到软件、从原理到实操彻底拆解清楚。无论你用的是树莓派这类单板机还是定制化的工控主板甚至是跑在虚拟机里的服务器这套思路都是相通的。2. 核心需求与方案选型解析2.1 需求拆解我们要的到底是什么当我们说“上电开机开机程序自运行”时实际上包含了两个独立但又紧密关联的需求上电开机Power-On Auto Boot指设备在接通电源后无需人工按下物理电源按钮就能自动完成从关机状态到操作系统完全启动的过程。这通常依赖于硬件如主板BIOS/UEFI或嵌入式处理器的Boot ROM的配置。开机程序自运行Auto Start Applications指操作系统完成启动、进入可操作状态如出现登录界面或命令行提示符后能够自动加载并执行一个或多个指定的用户程序或服务而无需用户手动登录并启动。这两个需求合在一起才能实现真正的“插电即用”。只实现前者设备开了机但像个空壳只实现后者你还得跑去按一下开机键。2.2 主流方案对比与选型逻辑针对不同的硬件平台和操作系统实现方案差异很大。选型的核心依据是你的设备硬件支持什么你的程序以什么身份、在哪个阶段运行方案一针对x86/PC架构的工控机或服务器上电开机主要通过配置主板的BIOS/UEFI设置实现。几乎所有工控主板都提供此功能名称可能是“AC Power Recovery”、“After Power Loss”、“Restore on AC Power Loss”等需要设置为“Power On”或“Always On”。开机自运行在Linux下主流方案是Systemd服务单元。它是现代Linux发行版如Ubuntu 18.04, CentOS 7, Debian 8默认的初始化系统和服务管理器功能强大、管理规范。对于需要一直运行在后台的服务如Web服务器、数据采集服务这是首选。方案二针对ARM架构的嵌入式设备如树莓派、各类派上电开机这类设备通常没有传统意义上的BIOS。其上电自启依赖于处理器的Boot ROM和存储在第一分区通常是FAT32格式的/boot分区中的引导配置。对于树莓派可以通过修改/boot/config.txt文件中的bootcode相关参数或利用硬件GPIO短接等“邪道”实现但最通用可靠的方式其实是方案一的后半部分做得好让人感觉它“上电就开”——因为它的启动速度极快。开机自运行除了Systemd在桌面环境或轻量级系统中可能会用到/etc/rc.local古老但简单适合跑一次性脚本。注意在一些新系统中它可能默认被禁用或最后才执行。Crontab的reboot利用Cron的 reboot 指令在每次启动时运行命令。适合运行不需要严格依赖启动顺序的脚本。桌面自动启动.config/autostart/如果你的程序是有图形界面的且系统会启动到桌面环境如LXDE on Raspberry Pi OS这是图形化方案。方案三容器化环境Docker如果你的应用已经容器化那么“开机自运行”就变成了“如何让Docker容器随宿主机启动”。这通常通过配置Docker服务本身docker.service或使用docker-compose配合Systemd来实现核心依然是依赖Systemd去管理Docker守护进程和你的Compose项目。选型心得对于绝大多数生产环境的Linux服务器和嵌入式设备Systemd服务是管理后台程序自启的“工业标准”。它提供了完善的依赖管理、日志收集journalctl、进程监控、失败重启机制这是rc.local或Crontab无法比拟的。因此下文将重点深入讲解基于Systemd的方案并兼顾其他方案的要点。3. 硬件层配置让设备“通电解锁”3.1 x86工控机/服务器的BIOS/UEFI设置这是实现物理上电开机的关键一步操作因主板厂商AMI, Insyde, American Megatrends等而异但原理相通。进入BIOS/UEFI设置界面开机瞬间按特定键通常是Del, F2, F10, Esc。工控机有时启动很快可能需要接上键盘并快速连按。寻找电源管理相关菜单菜单名可能是“Power Management”、“ACPI Settings”、“Advanced”下的子项。关键设置项After Power Loss或AC Power Recovery这是核心选项。将其设置为“Power On”或“Always On”。如果设置为“Last State”那么停电前如果是关机来电后仍保持关机。Wake on LAN (WoL)如果你还需要网络唤醒可以一并启用。但注意WoL需要网卡和支持的路由器/交换机配合且设备必须处于软关机S5状态并保持网卡供电对于彻底断电的场景无效。保存并退出通常按F10选择“Yes”保存配置并重启。实操注意有些工业主板为了极致稳定性可能会有一个物理的“上电自启”跳线Jumper需要根据手册短接特定针脚。务必查阅你的主板用户手册。3.2 嵌入式设备以树莓派为例的“上电开机”严格来说树莓派没有“关机”状态只有“运行”和“掉电”状态。只要接通电源其Broadcom SoC的Boot ROM就会开始工作。所以树莓派本身就是“上电开机”的。用户常说的“树莓派上电开机配置”其实更多是指如何避免在启动过程中因某些问题如外设未就绪导致启动失败以及如何配置软件层的自启动。一个常见的硬件相关配置是设置等待网络就绪后再启动服务这可以通过Systemd的network-online.target依赖来实现后文会详述。4. 软件层核心Systemd服务单元深度配置这是实现程序可靠自运行的重中之重。我们将创建一个自定义的Systemd服务单元文件。4.1 服务单元文件解剖与创建假设我们有一个名为my_data_collector的数据采集程序编译后的二进制文件路径是/usr/local/bin/my_data_collector它运行时需要读取/etc/my_collector/config.yaml配置文件。创建服务文件sudo vim /etc/systemd/system/my-data-collector.service编写服务配置内容[Unit] DescriptionMy Data Collector Service Documentationhttps://github.com/yourname/yourproject Afternetwork-online.target syslog.target Wantsnetwork-online.target Requiresmysql.service # 如果你的程序依赖MySQL可以这样指定 [Service] Typesimple Usercollector Groupcollector WorkingDirectory/var/lib/my-collector EnvironmentFile-/etc/default/my-collector ExecStart/usr/local/bin/my_data_collector --config /etc/my_collector/config.yaml ExecReload/bin/kill -HUP $MAINPID Restarton-failure RestartSec5s TimeoutStopSec30 LimitNOFILE65536 StandardOutputjournal StandardErrorjournal SyslogIdentifiermy-data-collector [Install] WantedBymulti-user.target4.2 关键参数深度解读与避坑指南[Unit]部分Afternetwork-online.target这是关键。它告诉Systemd必须在网络真正就绪而不仅仅是网络设备加载之后再启动本服务。对于需要联网的程序如上报数据、连接数据库至关重要。仅设置network.target可能不够因为那只表示网络栈已加载不代表获得了IP地址或可路由。Wantsnetwork-online.target表示本服务“希望”网络在线但即使网络启动失败本服务也会启动。Requires则更严格表示强依赖。Requiresmysql.service如果你的程序不先连上数据库就会崩溃那就用Requires。但要注意这会使你的服务和MySQL服务绑定MySQL启动失败会导致你的服务也失败。通常Wants是更松散和推荐的方式。[Service]部分Typesimple这是最常用的类型Systemd认为ExecStart的命令就是服务的主进程。如果你的程序会自己fork到后台daemonize则需要设置为Typeforking并配合PIDFile参数。判断错误是常见坑如果程序自己后台化了还设为simpleSystemd会认为服务启动失败。User和Group绝对不要用root运行你的应用程序创建一个专用的系统用户和组如sudo useradd --system --no-create-home --shell /bin/false collector并确保该用户对所需文件和目录有适当的权限。这是安全性的基石。EnvironmentFile用于加载环境变量。路径前的-表示“如果文件不存在不报错”。可以将数据库密码、API密钥等敏感或可配置参数放在这里如/etc/default/my-collector避免硬编码在服务文件中。ExecStart命令必须使用绝对路径并且如果命令包含参数需要完整写出。对于脚本解释器也要用绝对路径如/bin/bash /path/to/script.sh。Restarton-failure服务异常退出时自动重启。这对于守护进程的稳定性非常重要。RestartSec是重启前的等待时间避免频繁重启刷日志。TimeoutStopSec停止服务时给进程发送SIGTERM后等待其自行退出的超时时间。超时后Systemd会发送SIGKILL强制杀死。对于需要时间做清理工作的程序这个值要设大一点。[Install]部分WantedBymulti-user.target表示当系统进入“多用户文本模式”即标准的无图形界面运行级别时这个服务应该被启用。对于服务器这就是我们需要的。4.3 启用、测试与管理服务重载Systemd配置每次修改服务文件后必须执行。sudo systemctl daemon-reload启用服务实现开机自启sudo systemctl enable my-data-collector.service这个命令实际上是在/etc/systemd/system/multi-user.target.wants/目录下创建了一个指向我们服务文件的符号链接。Systemd在启动时会读取这些.wants目录来决定启动哪些服务。启动服务sudo systemctl start my-data-collector.service检查服务状态sudo systemctl status my-data-collector.service这是你最常用的命令。绿色“active (running)”表示成功。如果失败这里会显示错误信息。查看服务日志sudo journalctl -u my-data-collector.service -f # -f 表示实时跟踪 sudo journalctl -u my-data-collector.service --since today # 查看今天的日志Systemd统一管理日志通过journalctl查看非常方便。日志是排查启动失败问题的第一现场。5. 备选与进阶方案详解5.1/etc/rc.local快速但不推荐用于生产这是一个在所有正常启动脚本之后、在用户登录之前执行的脚本文件。它简单但缺点明显无依赖管理你不知道你的脚本运行时网络、数据库等服务是否真的就绪了。无进程管理脚本启动的进程如果挂了不会自动重启。执行顺序靠后但不确定在某些新系统上它可能与其他服务并行执行。可能被禁用一些发行版默认禁用rc-local.service。使用方法确保/etc/rc.local文件存在且可执行 (sudo chmod x /etc/rc.local)。编辑文件在exit 0之前添加你的命令。确保rc-local.service已启用sudo systemctl enable rc-local.service适用场景临时测试、运行一些简单的环境设置命令如挂载网络驱动器、设置GPIO引脚模式。5.2 Crontabreboot灵活的后台任务Cron是定时任务工具reboot是一个特殊的“时间”设定表示在每次系统启动时运行一次。使用方法crontab -e # 编辑当前用户的crontab # 添加一行 reboot /usr/bin/python3 /home/pi/my_script.py /tmp/my_script.log 21优点配置简单可以方便地以任何用户身份运行并且输出可以重定向到日志文件。缺点和rc.local类似缺乏服务管理功能状态查看、停止、重启、依赖关系。Cron本身也是一个服务如果Cron没启动你的任务就不会运行。适用场景启动不需要严格监管的、一次性的用户级脚本或后台任务。5.3 桌面环境自动启动对于带有图形界面的程序如一个用PyQt写的监控界面可以将其.desktop文件放入自动启动目录。用户级~/.config/autostart/系统级/etc/xdg/autostart/创建一个名为my-gui-app.desktop的文件内容如下[Desktop Entry] TypeApplication NameMy GUI App Exec/usr/local/bin/my_gui_app CommentStart my GUI application on login X-GNOME-Autostart-enabledtrue注意这只有在用户自动登录到桌面环境时才有效。对于需要高可靠性的工业HMI人机界面通常会有更专门的窗口管理器或自启动配置。6. 全流程实操与验证让我们串联起硬件和软件完成一次从零开始的配置。6.1 场景与准备设备一块支持上电自启的x86工控主板安装了Ubuntu Server 22.04 LTS。任务部署一个用Go编写的TCP数据接收服务器tcp_receiver要求设备通电后自动开机并自动运行该服务。步骤配置BIOS开机按Del进入BIOS找到“Power Management Setup” - “After AC Power Loss”设置为“Power On”。保存退出。部署程序将编译好的tcp_receiver二进制文件上传到工控机例如放到/opt/tcp_receiver/目录下。确保它有执行权限 (chmod x)。创建专用用户sudo useradd --system --no-create-home --shell /bin/false tcp_receiver创建Systemd服务文件sudo vim /etc/systemd/system/tcp-receiver.service输入以下内容根据你的程序调整[Unit] DescriptionTCP Data Receiver Service Afternetwork-online.target Wantsnetwork-online.target [Service] Typesimple Usertcp_receiver Grouptcp_receiver WorkingDirectory/opt/tcp_receiver ExecStart/opt/tcp_receiver/tcp_receiver -port 8080 Restarton-failure RestartSec5 StandardOutputjournal StandardErrorjournal SyslogIdentifiertcp-receiver [Install] WantedBymulti-user.target设置权限并重载sudo chown tcp_receiver:tcp_receiver /opt/tcp_receiver/tcp_receiver sudo systemctl daemon-reload启用并启动服务sudo systemctl enable tcp-receiver.service sudo systemctl start tcp-receiver.service sudo systemctl status tcp-receiver.service # 检查状态模拟断电测试这是最关键的一步。不要直接拔电源在系统中执行sudo shutdown -h now进行关机。等待设备完全关闭后风扇停转再断开电源线。等待几秒然后重新插上电源线。观察设备是否自动启动并等待系统完全启动后使用sudo systemctl status tcp-receiver.service和journalctl -u tcp-receiver.service来验证服务是否已自动运行。7. 常见问题排查与调试技巧即使配置看起来正确服务也可能启动失败。以下是我总结的排查清单7.1 服务启动失败 (systemctl status显示 failed)检查日志是第一要务sudo journalctl -u your-service-name.service -xe --no-pager-xe会显示更详细的上下文信息。错误信息通常会直接告诉你原因比如“Permission denied”权限问题、“No such file or directory”路径错误、“Address already in use”端口冲突。权限问题程序文件/脚本不可执行chmod x /path/to/your/binary服务用户无权访问文件/目录检查程序、配置文件、工作目录的所有者和权限。用sudo -u service_user ls -l /path/to/file模拟服务用户访问。尝试监听特权端口1024如果程序需要绑定80或443端口要么使用CAP_NET_BIND_SERVICE能力setcap cap_net_bind_serviceep /path/to/binary要么通过反向代理如Nginx转发。路径与环境变量问题ExecStart命令中必须使用绝对路径。在服务中环境变量非常干净。如果你的程序依赖PATH或LD_LIBRARY_PATH等必须在服务文件中用Environment指令显式设置或者通过EnvironmentFile引入。依赖服务未就绪如果你的服务After了network-online.target但网络启动很慢可能导致服务启动超时。可以适当增加服务的TimeoutStartSec值。使用systemctl list-dependencies your-service.service查看依赖关系。7.2 服务进程退出但状态为Activesystemctl status显示active (exited)。这通常意味着Type设置错误。对于会自己转入后台的守护进程应该设置Typeforking并尽可能指定PIDFile/var/run/your-service.pid这样Systemd才能正确跟踪主进程。7.3 上电后服务没跑起来但手动启动可以这是最棘手的情况之一通常是启动顺序或依赖问题。检查After和Wants/Requires确保你的服务等待了所有必要的资源。例如如果你的程序需要挂载一个NFS网络存储那么应该Afternfs-mount.service或remote-fs.target。检查网络依赖确认你用的是network-online.target而不是network.target。有些网络配置如DHCP、复杂网桥需要更长时间。查看启动时间线的日志sudo journalctl --boot # 查看本次启动的所有日志 sudo journalctl --boot -u your-service # 筛选你的服务日志看看你的服务在启动时间线中何时被拉起以及前后发生了什么事件。7.4 调试技巧使用“干跑”和临时服务以服务用户身份手动运行这是最直接的测试。sudo -u service_user /path/to/your/command --with-args观察输出复现问题。修改服务文件进行调试临时将服务类型改为Typeoneshot并设置RemainAfterExityes在ExecStart中调用一个脚本在脚本里输出环境变量、执行你的程序并记录详细日志。使用systemd-analyzesystemd-analyze critical-chain your-service.service # 分析服务启动的关键路径 systemd-analyze blame # 查看哪些服务启动耗时最长配置“上电开机程序自运行”是一个系统工程需要你对硬件启动流程、操作系统初始化过程和服务管理机制有连贯的理解。从可靠的BIOS设置开始到为你的应用量身定制一个健壮的Systemd服务单元每一步的细节都决定了设备在无人值守环境下的稳定性。多测试、多查日志、多模拟异常情况如断电、网络延迟才能真正做到心中有数让设备在角落里默默无闻地稳定运行。

相关新闻

XGP存档提取器:5分钟免费实现Xbox Game Pass游戏存档迁移的终极指南

XGP存档提取器:5分钟免费实现Xbox Game Pass游戏存档迁移的终极指南

XGP存档提取器:5分钟免费实现Xbox Game Pass游戏存档迁移的终极指南 【免费下载链接】XGP-save-extractor Python script to extract savefiles out of Xbox Game Pass for PC games 项目地址: https://gitcode.com/gh_mirrors/xg/XGP-save-extractor 你是否…

2026/8/2 1:51:38 阅读更多 →
VibeUE:基于MCP协议实现AI助手与虚幻引擎的深度集成

VibeUE:基于MCP协议实现AI助手与虚幻引擎的深度集成

1. 项目概述:当AI助手遇见虚幻引擎最近在游戏开发圈和AI工具圈,一个名为“VibeUE”的项目讨论度开始升温。简单来说,它试图做一件听起来很酷但实现起来极具挑战性的事:让一个通用的AI助手,能够像一位经验丰富的技术美术…

2026/8/2 1:51:38 阅读更多 →
UE5源码构建专用服务器(DS)实战:从环境配置到跨平台部署

UE5源码构建专用服务器(DS)实战:从环境配置到跨平台部署

1. 项目概述与核心价值如果你是一名UE开发者,尤其是对网络游戏、多人在线体验或者需要构建一个稳定、可扩展的服务器架构感兴趣,那么“从源码构建DS服务器”这个课题,绝对是你技术栈中必须啃下的一块硬骨头。DS,即Dedicated Serve…

2026/8/3 3:53:53 阅读更多 →

最新新闻

增程式混合动力汽车动力学建模与Simulink仿真实践

增程式混合动力汽车动力学建模与Simulink仿真实践

1. 增程式混合动力汽车概述增程式混合动力汽车(Range-Extended Electric Vehicle,简称REEV)是一种特殊类型的插电式混合动力汽车。与传统混动车型不同,增程式汽车主要依靠电力驱动,发动机仅作为发电机使用,…

2026/8/3 3:53:45 阅读更多 →
电商数据挖掘实战:从数据清洗到推荐系统构建全流程解析

电商数据挖掘实战:从数据清洗到推荐系统构建全流程解析

1. 项目缘起:从“数据金矿”到“实战利器”做电商的朋友,或者正在研究数据挖掘的同学,大概都听过一句话:“数据是新时代的石油”。这话没错,但更贴切的比喻可能是:原始数据是深埋地下的原油,而经…

2026/8/3 3:53:45 阅读更多 →
Cpp2IL终极指南:如何逆向Unity IL2CPP编译流程并恢复C代码

Cpp2IL终极指南:如何逆向Unity IL2CPP编译流程并恢复C代码

Cpp2IL终极指南:如何逆向Unity IL2CPP编译流程并恢复C#代码 【免费下载链接】Cpp2IL Work-in-progress tool to reverse unitys IL2CPP toolchain. 项目地址: https://gitcode.com/gh_mirrors/cp/Cpp2IL Cpp2IL是一个功能强大的开源逆向工程工具,…

2026/8/3 3:53:45 阅读更多 →
Unity游戏本地化实战:XUnity自动翻译器从入门到精通

Unity游戏本地化实战:XUnity自动翻译器从入门到精通

1. 项目概述:为什么我们需要自动翻译工具?做独立游戏或者小型工作室的朋友,肯定都遇到过这个头疼的问题:游戏做完了,内容很棒,想推向更广阔的市场,比如中文玩家社区,但一看到那成百上…

2026/8/3 3:53:45 阅读更多 →
SpringBoot+Vue全栈人事管理系统开发实战

SpringBoot+Vue全栈人事管理系统开发实战

1. 项目概述:SpringBootVue人事管理系统全栈解决方案这个基于SpringBootVue的中小企业人事管理系统,是我在指导本科毕业设计时反复打磨的一个全栈项目模板。它完美解决了学生做Java Web毕设时的三大痛点:技术栈陈旧(还在用JSPServ…

2026/8/3 3:53:45 阅读更多 →
广义Benders分解法在综合能源系统优化中的应用

广义Benders分解法在综合能源系统优化中的应用

1. 项目背景与核心价值综合能源系统优化规划是当前能源领域的前沿研究方向,它通过协调电力、热力、燃气等多种能源形式,实现能源的高效利用和低碳排放。而广义Benders分解法作为一种强大的数学优化工具,特别适合处理这种具有复杂耦合关系的大…

2026/8/3 3:52:44 阅读更多 →

日新闻

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

PC服务器具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构一、前言:具身智能需要“混合算力闭环系统”传统人工智能依赖云端静态数据集训练,不具备物理交互能力,无法适应真实世界的不确定性。具身智能(Embodied…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

前言构建机器人、具身智能这类分布式实时系统,通信底座直接决定整套系统的实时性、容错性、组网能力。分布式领域长期存在 4 类经典通信架构:点对点模式、Broker 中间代理模式、广播模式、以数据为中心(DDS)模式。很多开发者疑惑&…

2026/8/3 0:00:47 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/3 1:53:31 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/2 6:34:16 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/2 2:47:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/2 0:23:22 阅读更多 →