Apache2の自動起動の設定

動作環境

Apache2の自動起動の設定

Ubuntuを再起動してみると

  • 以前インストールした 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 再起動をするときの状態

Apacheが起動するタイミング

  • これまで調べてきた内容より、Apache2は、multi-user.target.wantsディレクトリにサービス定義されていたので、ランレベルとしては、2 or 3 or 4 の状態の時に起動していたということが分かりました。
    • GUIが起動する前に、すでにApache2が起動しているということですね。