![시스템 시작-중지-재로드 syslog 메시지를 파일로 보내는 방법](https://linux55.com/image/203661/%EC%8B%9C%EC%8A%A4%ED%85%9C%20%EC%8B%9C%EC%9E%91-%EC%A4%91%EC%A7%80-%EC%9E%AC%EB%A1%9C%EB%93%9C%20syslog%20%EB%A9%94%EC%8B%9C%EC%A7%80%EB%A5%BC%20%ED%8C%8C%EC%9D%BC%EB%A1%9C%20%EB%B3%B4%EB%82%B4%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
특정 파일에 systemd 시작/중지/다시 로드 메시지를 보내고 싶습니다. 특히, mysqld는 데몬 시작/중지 메시지를 파일에 보내지 않는 것 같아서 log-error
로그에 성공/실패를 나타내는 내용을 담고 싶습니다.
나는 현재 및 을 조작하고 있지만 ExecStartPost
더 ExecStopPost
좋은 방법이 있을 것입니다.영감은 여기에 있습니다.
답변1
이것은 다음과 잘 작동하는 것 같습니다 /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