Сценарий услуг Systemd, не регистрирующийся во время завершения работы

Фон

NetworkManager не запускает dispatcher.d/pre-down.d скрипты, таким образом, я создал systemd-сервисный сценарий. Это работает хорошо во время запуска и завершения работы, но во время завершения работы это не пишет в системный журнал. Файл/etc/iptables.rules обновляется во время завершения работы, но ничто не зарегистрировано к/var/log/syslog.

От терминального выполнения...

systemctl restart network-down

... информация о записях к системному журналу. Но не во время системной перезагрузки.

Вопрос

Там что-то отсутствует в моем сервисном сценарии?

Сценарий:/etc/systemd/system/network-down.service:

[Unit]
Description=Firewall Iptables Save
Wants=network-online.target
After=network.target network-online.target

[Service]
Type=oneshot
ExecStart=/bin/true
ExecStop=/bin/bash /etc/NetworkManager/dispatcher.d/pre-down.d/01-firewall-pre-down network pre-down
RemainAfterExit=yes
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=Firewall Iptables Save

[Install]
WantedBy=multi-user.target

Сценарий: 01-firewall-pre-down:

if [ -x /usr/bin/logger ]; then
            LOGGER="/usr/bin/logger -s -p daemon.info -t FirewallHandler[PREDOWN]"
    else
            LOGGER=echo
    fi

case "$2" in

        pre-up)
                if [ ! -r /etc/iptables.rules ]; then
                        ${LOGGER} "No iptables rules exist to restore."
                        return
                fi
                if [ ! -x /sbin/iptables-restore ]; then
                        ${LOGGER} "No program exists to restore iptables rules."
                        return
                fi
                ${LOGGER} "Restoring iptables rules (pre-up)"
                /sbin/iptables-restore -c < /etc/iptables.rules
                ;;
        pre-down)
                if [ ! -x /sbin/iptables-save ]; then
                        ${LOGGER} "No program exists to save iptables rules."
                        return
                fi
                ${LOGGER} "Saving iptables rules. (pre-down)"
                /sbin/iptables-save -c > /etc/iptables.rules
                ;;
        *)
                 ${LOGGER} "Nothing to do for case: ($2)"
                ;;
esac
2
задан 15 December 2017 в 00:34

1 ответ

Измените:

After=network.target network-online.target

на:

After=network.target network-online.target rsyslog.service

.

0
ответ дан 15 December 2017 в 00:34

Другие вопросы по тегам:

Похожие вопросы: