◆ rolekit も disable すると止めれる

firewalld が自動起動しないように

sudo systemctl disable firewalld

をしているのに なぜか起動する

そんな現象がおきていました

原因は rolekit

fedora 21 で導入されたサーバ管理ツールのようです

rolekit の systemd のユニットファイルの Unit セクションはこうなってます
[Unit]
Description=rolekit - role server
After=network.target
Requires=firewalld.service
Requires=polkit.service

Requires に firewalld がいますね

Requires はこのユニットが起動するときに必要なユニットを定義するもので Requires に書かれているユニットが enable じゃなくても起動させます

つまり rolekit が enable になっていると firewalld が disable でも firewalld が起動します


server エディションだとデフォルトで enable になっているので こういう現象が起きている人が多いと思います
使ってないなら disable にしてしまいましょう


workstation エディションだと rolekit は入っていなかったのでこういう現象は起きないようです

Requires とか After がよく混ざるので簡単なまとめ


Requires

ユニットが必要としてるもの
起動するときに Requires 指定したユニットも起動させる
Requires のユニットの起動に失敗したら自分の起動も失敗

Requires のものを起動してから自分を起動するようにみえるけど順番は決められてないみたい

Wants

Requires と同じく指定したユニットも起動させる
Requires 指定したユニットが失敗しても自分には影響なし

After

自分より先に起動するものを指定する
After 指定したユニットの起動後に自分を起動する

順番を指定してるだけなので これだけ指定しても指定したものは起動しない