Systemd

如何發送 systemd 開始 - 停止 - 將系統日誌消息重新載入到文件

  • March 18, 2022

我想將 Start/Stop/Reload systemd 消息發送到特定文件。具體來說,mysqld 似乎沒有向log-error文件發送守護程序啟動/停止消息,所以我想在日誌中有一些東西表明成功/失敗。

我現在正處於一個搞亂ExecStartPostand的地步ExecStopPost,但必須有更好的方法。靈感在這裡。

這似乎很好地工作/lib/systemd/system/mysql.service

[Service]
ExecStart=/usr/sbin/mysqld --daemonize
ExecStartPost=/bin/bash -c "DATE=$(date --iso-8601=seconds); \
   PID=$(/usr/bin/systemctl show -p MainPID mysql |sed 's/MainPID=//'); \
   /usr/bin/echo $${DATE} '[systemd] Starting MySQL Server... PID:' $${PID} \
   >> /var/log/error-mysql.log"
ExecStopPost=/bin/bash -c "DATE=$(date --iso-8601=seconds); \
   PID=$(/usr/bin/systemctl show -p MainPID mysql |sed 's/MainPID=//'); \
   /usr/bin/echo $${DATE} '[systemd] Stopping MySQL Server... PID:' $${PID} \
   >> /var/log/error-mysql.log"

輸出:

2022-03-18T08:59:18-04:00 [systemd] Starting MySQL Server... PID: 1166
2022-03-18T08:59:28-04:00 [systemd] Stopping MySQL Server... PID: 0
2022-03-18T08:59:46-04:00 [systemd] Starting MySQL Server... PID: 1216
2022-03-18T08:59:58-04:00 [systemd] Stopping MySQL Server... PID: 0
2022-03-18T08:59:59-04:00 [systemd] Starting MySQL Server... PID: 1263

引用自:https://unix.stackexchange.com/questions/694786