講一個linux服務啟動報錯問題排查
- 2022 年 6 月 20 日
- 筆記
- CentOS, linux, Prometheus
例子
首先我們在/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
總結:
從上面的排查示例可以看出服務開啟後先查看狀態,如果報錯到對應服務的日誌去查看報錯資訊。