Usualmente relacionado con scripts que se ejecutan una sola vez en el sistema. Veamos un ejemplo que podría resolverse de otras formas: La configuración del Masquerading en Iptables. El script es tan sencillo como lo siguiente
cat /usr/local/sbin/firewall.sh
#!/bin/bash
iptables -t nat -X
iptables -t nat -Z
iptables -t nat -F
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o enp1s0 -j MASQUERADE
echo 0
Ese echo
es necesario para que el script sea valido para systemd
El archivo .systemd
queda de la siguiente manera:
cat /lib/systemd/system/firewall.service
[Unit]
Description=Configura firewall en el sistema
After=networking.service
Requires=networking.service
[Service]
Type=oneshot
ExecStart=/usr/local/sbin/firewall.sh
[Install]
WantedBy=multi-user.target
Ahora puede activarse/correr el servicio de la siguiente forma:
systemctl enable --now firewall.service
Por otra parte, RemainAfterExit=yes
cambia un poco el comportamiento del servicio. Se queda como activo mientras después de ejecutados, y es posible que el execStop
se ejecute con un stop del servicio, ya sea de parte del usuario o del sistema