Как найти точную причину невозможности запуска службы systemd (служба имеет неверную настройку файла модуля)?

Как найти точную причину невозможности запуска службы systemd (служба имеет неверную настройку файла модуля)?

Это действительно раздражает, так как systemdответ только о том, что моя конфигурация служебного файла неверна, но не указано, где именно неверна:

/lib/systemd/system/auto_pgha.service:

[Unit]
Description=PostgreSQL High Availability
After=network.service
After=firewalld.service


[Service]
Type=simple
WorkingDirectory=/etc/repmgr
ExecStartPre=/bin/bash -c 'echo -e "\n"  `date +"%Y/%m/%d %a, %X"`": STARTING \n"  >> pgha.log'
ExecStart=/bin/bash -c "python3 pg_high_availability.py  &>> pgha.log"
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target

Внутри каталога /etc/repmgrобе команды работали нормально. Но служба systemd просто ответила ошибкой:

# systemctl start auto_pgha
Failed to start auto_pgha.service: Unit auto_pgha.service has a bad unit file setting.
See system logs and 'systemctl status auto_pgha.service' for details.

# systemctl status -l auto_pgha
○ auto_pgha.service - PostgreSQL High Availability
     Loaded: bad-setting (Reason: Unit auto_pgha.service has a bad unit file setting.)
......
auto_pgha.service: Unit configuration has fatal error, unit will not be be started. 

решение1

Вы можете использовать systemd-analyze verifyкоманду. Если мы поместим содержимое вашего вопроса в pgha.service, то увидим:

$ systemd-analyze verify pgha.service
.../pgha.service:10: Failed to resolve unit specifiers in echo -e "
"  `date +"%Y/%m/%d %a, %X"`": STARTING
"  >> pgha.log: Invalid slot
pgha.service: Unit configuration has fatal error, unit will not be started.
Unit pgha.service has a bad unit file setting.

Вы получаете эту ошибку, потому что сама systemd использует %<something>токены (см.Раздел «Спецификаторы» на systemd.unit(5)странице руководства.

Вам нужно будет написать:

ExecStartPre=/bin/bash -c 'echo -e "\n"  `date +"%%Y/%%m/%%d %%a, %%X"`": STARTING \n"  >> pgha.log'

Связанный контент