動作環境
Apache2の自動起動の設定
- 以前インストールした Apache2 が自動的に起動されるようになっていました。
- 特に設定したつもりはなかったのだけれど、
sudo apt install -y apache2
を実行したときに、勝手に登録されていたのかなぁと。
- では、ubuntu の機構でどのように登録されているのか気になったので、少しだけ掘り下げて確認してみました。
色々情報収集してわかったこと。
- Ubuntuでは、自動起動の設定は systemd でサービスが管理されているようです。
- systemd で管理されるサービスの定義ファイルは、 /etc/systemd/system/ ディレクトリに収録されているようです。
- apache2 においては、/etc/systemd/system/ 配下の multi-user.target.wants ディレクトリに、 apache2.service が存在していました。
$ pwd
/etc/systemd/system/multi-user.target.wants
$
$
$ ls -l apache2.service
lrwxrwxrwx 1 root root 35 1月 31 15:04 apache2.service -> /lib/systemd/system/apache2.service
- ざっくり結論として、自動起動させるには以下の手順が必要そうです。
- サービス定義ファイルの実体を /lib/systemd/system/ に配置する
- /etc/systemd/system/multi-user.target.wants 配下には、サービス定義ファイルの実態を指し示すためのシンボリックリンクが必要
まだ分からないことがあったので補足
multi-user.target.wants ディレクトリって何者?
$ ls -l /usr/lib/systemd/system/runlevel?.target
lrwxrwxrwx 1 root root 15 1月 10 13:56 /usr/lib/systemd/system/runlevel0.target -> poweroff.target
lrwxrwxrwx 1 root root 13 1月 10 13:56 /usr/lib/systemd/system/runlevel1.target -> rescue.target
lrwxrwxrwx 1 root root 17 1月 10 13:56 /usr/lib/systemd/system/runlevel2.target -> multi-user.target
lrwxrwxrwx 1 root root 17 1月 10 13:56 /usr/lib/systemd/system/runlevel3.target -> multi-user.target
lrwxrwxrwx 1 root root 17 1月 10 13:56 /usr/lib/systemd/system/runlevel4.target -> multi-user.target
lrwxrwxrwx 1 root root 16 1月 10 13:56 /usr/lib/systemd/system/runlevel5.target -> graphical.target
lrwxrwxrwx 1 root root 13 1月 10 13:56 /usr/lib/systemd/system/runlevel6.target -> reboot.target
- ランレベルとターゲットについて、もう少し調べて整理してみたのが以下の表となります。
ランレベル |
ターゲット |
説明 |
0 |
poweroff |
システムが停止された状態 |
1 |
rescue |
セーフモードなどで起動された状態。 |
2, 3, 4 |
multi-user |
マルチユーザモード。CUIのみで起動するときはこの状態 |
5 |
graphical |
グラフィカルモード。GUI付きで起動するとこの状態 |
6 |
reboot |
再起動をするときの状態 |
- これまで調べてきた内容より、Apache2は、multi-user.target.wantsディレクトリにサービス定義されていたので、ランレベルとしては、2 or 3 or 4 の状態の時に起動していたということが分かりました。
- GUIが起動する前に、すでにApache2が起動しているということですね。