讲一个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 

讲一个linux服务启动报错问题排查

从上图可以看出失败了,我去为什么呢赶紧查看日志吧
查看对应node_exporter.service服务的日志

journalctl -u node_exporter.service 

翻到最后可以看到报错日志为

讲一个linux服务启动报错问题排查

可以判断了是参数端口号解析不出来,由于多了"",所以去掉"",改为下面的配置。

[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 

讲一个linux服务启动报错问题排查

总结:

从上面的排查示例可以看出服务开启后先查看状态,如果报错到对应服务的日志去查看报错信息。

发表评论

评论已关闭。

相关文章