先让前台运行变得可复现
Mihomo Linux二进制程序需要匹配目标系统与CPU架构。使用uname -m查看架构后,再核对发布资源与系统要求。解压后可先检查文件类型和权限,对已确认可信的文件赋予所需执行权限,并查询版本。下面的路径与程序名只是示例,不能直接当作现有服务器的安装位置。
# 在实际解压目录中检查,不是安装脚本
file ./mihomo
ls -l ./mihomo
chmod u+x ./mihomo
./mihomo -v
权限不够时,先确认文件所有者、挂载选项和当前账户。可执行位存在,也可能因文件系统的noexec选项或架构错误而不能运行。不要把所有错误都归因于权限,更不要递归开放整个配置目录。准备过程可结合Linux安装与首次运行步骤完成,再使用明确的配置路径验证。
systemd接手的是一个确定的执行环境
systemd适用于采用该服务管理器的发行版,容器、OpenWrt或使用其他初始化系统的环境应采用各自机制。已经由包管理器或第三方工具安装的服务,应先查看现有单元,避免重复创建。以实际服务名称为准,下面的查询不会启用、停止或修改服务:
systemctl cat mihomo
systemctl status mihomo --no-pager
journalctl -u mihomo -n 50 --no-pager
阅读Mihomo服务单元时,重点查看ExecStart、User、WorkingDirectory以及覆盖配置。服务账户可能无法读取你在个人目录中使用的文件;服务的PATH也不一定包含交互式终端里的路径。用ExecStart中的完整程序路径查询版本,才能确认与实际服务运行的是同一个核心。
一个精简单元的阅读示例
# 仅示意字段关系;路径、账户与权限需按环境设计
[Unit]
Description=Mihomo core
After=network.target
[Service]
Type=simple
User=mihomo
WorkingDirectory=/var/lib/mihomo
ExecStart=/usr/local/bin/mihomo -d /var/lib/mihomo -f /etc/mihomo/config.yaml
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
此示例假设已创建专用账户和所需目录,只展示普通代理运行的字段关系。它没有为TUN、低端口或其他特权功能授予能力,也不能保证适用于所有配置。不要直接覆盖现有单元;先备份,逐项评估权限与数据目录的可写范围。
状态、退出码与日志要放在一起看
Mihomo服务显示active,说明管理器当前识别到运行状态;它不证明远端服务或每条规则都正常。若频繁重启,应结合最近退出码、启动时间与journal日志识别错误,避免只靠增加Restart频率掩盖问题。手动实例与服务实例同时运行时,可能争用相同端口。
遇到配置加载失败,使用同一程序版本,并在独立检查目录中按配置验证流程复现。手动成功而服务失败时,优先比较账户、路径、资源文件和工作目录;若两种方式都失败,再依据启动日志的错误阶段缩小范围。
留下一份能恢复的运行记录
服务化之前保存原有程序、配置和启动参数。启停操作应在明确影响范围的维护窗口内进行,确认没有其他管理工具自动拉起同一核心。对于重启策略,关注失败原因与重试间隔,而不是无休止重启。
维护Mihomo长期运行环境的基础是可追溯:知道谁启动了进程、它读了什么配置、日志在哪里,以及旧版本如何恢复。把这些事实写入运维记录,比单看一个绿色状态更可靠。



