systemd への登録

iptables の設定を行うスクリプト /etc/init.d/firewall を書いた。これを起動時に自動実行したい。Debian jessie では systemd になっているので、サービスとして登録する必要がある。

以下のような /etc/systemd/system/firewall.service ファイルを作る。

[Unit]
Description=iptables firewall and SNAT
After=network.target 

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/etc/init.d/firewall start
ExecStop=/etc/init.d/firewall stop 

[Install]
WantedBy=multi-user.target

Type を oneshot にして RemainAfterExit を指定しておくのがポイント。こうしないと、スクリプトが正常終了したあとに自動的に ExecStop も呼ばれてしまう。

次に、起動時に自動実行するようにする。

systemctl enable firewall.service

手動で起動するには、start を用いる。状態を把握したり、ログを見るには status を使う。

Systemd入門(1) - Unitの概念を理解する - めもめも が参考になった。