【zz.ac】设置哪吒探针为系统服务
下午发现上次设置的zz.ac上的哪吒探针离线了,应该是服务器重启导致上次设置的nohp ./nezha-agent -c config.yml 停止运行了。能不能把nezha探针设置为系统服务呢?
当然可以,于是马上行动!
设置了系统服务发现nezha探针还是离线的,运行systemctl --user status nezha.service,报错:
1 | |
尝试在文件夹中直接运行: ./nezha-agent -c config.yml ,却是正常的:
1 | |
询问Gmini ,为什么会发生这种情况:
为什么直接运行正常,但
systemctl --user却不行?主要有三个“隐形地雷”:
- 变量被丢弃 (Specifier Collision): 你的代理地址包含
%(如%eth0或%25eth0)。在systemd配置文件中,%是特殊占位符。systemd尝试解析它发现不符合规则,于是报Invalid slot错误并直接丢弃了该变量。没有了代理环境变量,哪吒 Agent 尝试直连面板 IP,导致网络不可达。- 环境隔离性: 直接在 Shell 运行会继承当前会话的所有
export变量;而systemd --user运行在一个相对干净的“沙盒”环境中,它不会读取你的.bashrc或当前 Shell 的变量。
经过多次和gemini 沟通,终于找到解决方案,在nezha-agent中新建一个nezha.env文件。
1 | |
修改~/.config/systemd/user$ 中的nezha.service为:
1 | |
运行:
1 | |