Systemd
如何發送 systemd 開始 - 停止 - 將系統日誌消息重新載入到文件
我想將 Start/Stop/Reload systemd 消息發送到特定文件。具體來說,mysqld 似乎沒有向
log-error
文件發送守護程序啟動/停止消息,所以我想在日誌中有一些東西表明成功/失敗。我現在正處於一個搞亂
ExecStartPost
and的地步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