講一個linux服務啟動報錯問題排查

橙子園發表於2022-06-20

例子

首先我們在/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

在這裡插入圖片描述

總結:

從上面的排查示例可以看出服務開啟後先檢視狀態,如果報錯到對應服務的日誌去檢視報錯資訊。

相關文章