讲一个linux服务启动报错问题排查
例子
首先我们在/usr/lib/systemd/system目录下创建一个服务文件,写下服务启动任务配置。下面我以prometheus的node_exporter为例
vim /usr/lib/systemd/system/node_exporter.service
写如下配置
[Unit]
Description=node_exporter
[Service]
ExecStart=/book/install/node_exporter-1.1.2.linux-amd64/node_exporter --web.listen-address=":9077"
Restart=on-failure
[Install]
WantedBy=multi-user.target
然后重新加载服务
systemctl daemon-reload
然后开启此服务
systemctl start node_exporter
再查看服务开启状态
systemctl status node_exporter
从上图可以看出失败了,我去为什么呢赶紧查看日志吧
查看对应node_exporter.service服务的日志
journalctl -u node_exporter.service
翻到最后可以看到报错日志为
可以判断了是参数端口号解析不出来,由于多了"",所以去掉"",改为下面的配置。
[Unit]
Description=node_exporter
[Service]
ExecStart=/book/install/node_exporter-1.1.2.linux-amd64/node_exporter --web.listen-address=:9077
Restart=on-failure
[Install]
WantedBy=multi-user.target
再次加载服务文件,并开启服务
systemctl daemon-reload
systemctl start node_exporter
查看服务开启状态:
systemctl status node_exporter
总结:
从上面的排查示例可以看出服务开启后先查看状态,如果报错到对应服务的日志去查看报错信息。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步