【Ubuntu18.04】【LIVA Z】systemdの自動起動設定

追記

↓でグダグダ書いたけど、サーバ起動時のiptablesの自動設定はiptables-persistentをインストールするだけで解決しました・・・。
まぁsystemdの勉強ができたということで・・・。

$ sudo apt install iptables-persistent


・設定保存
sudo /etc/init.d/netfilter-persistent save

・設定読み込み
sudo /etc/init.d/netfilter-persistent reload

以下は無視してください。

ーーーーーーーーーーーーーーーーーーーー

記載が前後するけど、systemdにて自動起動する設定。
engetu21.hatenablog.com

今回はiptablesの構築ファイル。
※こちらの詳細は別途記載予定。

サーバ起動時に自動で起動したい場合、Ubuntu18.04ではsystemdを利用するらしい。
昔はinit.dに設定していたけど、時代は変わったということらしい・・・。
engetu21.hatenablog.com

1.Unitファイルの作成

iptablesの設定を記載したシェルファイルはどこに置いてもいいけど、それを起動するためにsystemdに読み込ませる設定ファイルが必要になる。
設定ファイルはUnit設定ファイルと呼ばれ、例えば、以下のように作成して、/etc/systemd/system配下に格納しておけばいいらしい。
詳細は以下のブログで。
qiita.com

$ sudo vi /etc/systemd/system/iptables.service

[Unit]
Description = iptables deamon
After=network.target

[Service]
ExecStart = /home/hogehoge/iptables.sh
Restart = always
Type = oneshot

[Install]
WantedBy = multi-user.target


※適用
$ systemctl daemon-reload

iptables.shを置く場所は自由。ExecStartでその場所を指定してあげればいい。
起動時のみ設定したいようなファイルは、Typeの指定をoneshotにしておけばいいらしい。(今回のiptables.shのような、一回設定しとけばいいや、ってものはType = simpleに設定すると妙な挙動になるので注意)
また、Afterにnetwork.targetを指定することでネットワークが立ち上がってから動作するように指定できる。

もっと確実にネットワーク後に起動させたい場合は以下のブログのようにしてあげるといいらしいですよ。
kernhack.hatenablog.com