I was thinking how to automatically rollback network misconfigurations with etckeeper and systemd.
# etckeeper commit # $EDITOR /etc/systemd/network/wired.network # systemctl restart systemd-networkd You broke the network! I'm calling your mom! Here's your broken config: $(cat broken_file) $(etckeeper vcs reset -- old_config_file) # $EDITOR /etc/systemd/network/wired.network # systemctl restart systemd-networkd #
Currently i'm stuck how to hook into restart event.
gdbus monitor --system --dest org.freedesktop --object-path /org/freedesktop
Doesn't output anything when running
# systemctl restart systemd-networkd
Script itself could be something like:
- hook into systemd
restartand if possible, directly into
- Read the hook information if it contains that restart failed, otherwise read
systemctl is-active systemd-networkd
- Rename broken file to $file.broken
etckeeper vcs reset -- $file
systemctl stop automatic-net-configuration-rollback.service(so that there's no infinite loop)
systemctl restart systemd-networkd
- Works ->
systemctl start automatic-net-configuration-rollback.service
- Doesn't ->
echo Rollbacked config file doesn't work either. Repair manually and start automatic rollback after it works.
- Works ->
Is this possible and/or does systemd already have this kind of service built-in or has someone made one already? My google searches came up empty.