新しいUbuntu 16.04サーバーを作成しました(問題があればDigital Oceanに)。 Apache2をセットアップしましたが、正しく実行されますが、再起動するたびに起動に失敗します。
systemctl statusから次を取得します。
root@twl-ubuntu-2gb-sgp1-01:~# systemctl status Apache2.service
● Apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/Apache2; static; vendor preset: enabled)
Drop-In: /lib/systemd/system/Apache2.service.d
└─Apache2-systemd.conf
Active: inactive (dead)
Docs: man:systemd-sysv-generator(8)
systemctl is-enabledを実行すると、「静的」になります:
root@twl-ubuntu-2gb-sgp1-01:~# systemctl is-enabled Apache2.service
static
systemctl enableを実行した後でも変更されません:
root@twl-ubuntu-2gb-sgp1-01:~# systemctl enable Apache2.service
Synchronizing state of Apache2.service with SysV init with /lib/systemd/systemd-sysv-install...
Executing /lib/systemd/systemd-sysv-install enable Apache2
root@twl-ubuntu-2gb-sgp1-01:~# systemctl is-enabled Apache2.service
static
しかし、Apacheの起動に問題はありません。 systemctl startを手動で実行すると、うまく機能します。
root@twl-ubuntu-2gb-sgp1-01:~# systemctl start Apache2.service
root@twl-ubuntu-2gb-sgp1-01:~# systemctl status Apache2.service
● Apache2.service - LSB: Apache2 web server
Loaded: loaded (/etc/init.d/Apache2; static; vendor preset: enabled)
Drop-In: /lib/systemd/system/Apache2.service.d
└─Apache2-systemd.conf
Active: active (running) since Sat 2016-07-09 07:33:30 EDT; 8s ago
Docs: man:systemd-sysv-generator(8)
Process: 1847 ExecStart=/etc/init.d/Apache2 start (code=exited, status=0/SUCCESS)
Tasks: 7
Memory: 22.5M
CPU: 455ms
CGroup: /system.slice/Apache2.service
├─1871 /usr/sbin/Apache2 -k start
├─1875 /usr/sbin/Apache2 -k start
├─1876 /usr/sbin/Apache2 -k start
├─1877 /usr/sbin/Apache2 -k start
├─1878 /usr/sbin/Apache2 -k start
└─1879 /usr/sbin/Apache2 -k start
Jul 09 07:33:28 twl-ubuntu-2gb-sgp1-01 systemd[1]: Starting LSB: Apache2 web server...
Jul 09 07:33:28 twl-ubuntu-2gb-sgp1-01 Apache2[1847]: * Starting Apache httpd web server Apache2
Jul 09 07:33:29 twl-ubuntu-2gb-sgp1-01 Apache2[1847]: AH00558: Apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set t
Jul 09 07:33:30 twl-ubuntu-2gb-sgp1-01 Apache2[1847]: *
Jul 09 07:33:30 twl-ubuntu-2gb-sgp1-01 systemd[1]: Started LSB: Apache2 web server.
私はsystemdが初めてで、14.04から16.04にアップグレードしたのはごく最近のことです。どこで間違っているのでしょうか、またはおそらく、Apache2が起動を拒否している理由をデバッグするにはどうすればよいですか?
Apacheがロードされていることがわかりますが、起動するとすぐにSIGTERMを受信しています。ログファイルの唯一の行は次のとおりです。
[Wed Jul 13 21:37:15.730331 2016] [mpm_prefork:notice] [pid 1871] AH00169: caught SIGTERM, shutting down
より良いエラーメッセージを取得する方法はありますか?前述したように、ブート直後にsystemctl start Apache2
を実行すると、すべてが正常に開始されます。
Sigtermは、Sudo reboot
を実行したときに殺されたことが原因であることがわかりました。 /var/log/Apache2/error.log
にログメッセージはありませんでした。 journalctl
を実行すると、起動プロセス中に次の行が表示されるため、正常に動作するように思われます。少なくともエラーは記録されません。
Jul 13 21:38:04 twl-ubuntu-2gb-sgp1-01 systemd[1]: Starting LSB: Apache2 web server...
Jul 13 21:38:04 twl-ubuntu-2gb-sgp1-01 Apache2[1800]: * Starting Apache httpd web server Apache2
Jul 13 21:38:04 twl-ubuntu-2gb-sgp1-01 Apache2[1800]: AH00558: Apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set t
Jul 13 21:38:05 twl-ubuntu-2gb-sgp1-01 Apache2[1800]: *
Jul 13 21:38:05 twl-ubuntu-2gb-sgp1-01 systemd[1]: Started LSB: Apache2 web server.
しかし、その後、サービスにアクセスすることはできず、systemctl status Apache2.service
は依然として「非アクティブ(デッド)」としてレポートします
I 検索is-enabled
のstatic
状態が意味するものは、
このコンテキストでは、静的とは、ユニットファイルにユニットを有効にするために使用される「インストール」セクションが含まれていないことを意味します。そのため、これらのユニットは有効にできません。
また、Apache2パッケージには、完全なファイルではなく、systemd
インクルードファイルのみが含まれていることがわかりました。
# /lib/systemd/system/Apache2.service.d/Apache2-systemd.conf
[Service]
Type=forking
RemainAfterExit=no
Apache2プロセスを管理するための残りのロジックは、systemd
がSysVinitスクリプトを実行できるようにするシムを使用することから来ているようです。そのため、SysVinitディレクトリのシンボリックリンクを使用して、起動時にApache2を実行できるようにしてください。
ln -s /etc/init.d/Apache2 /etc/rc5.d/S02Apache2
Apache2がUbuntu 16.04の完全なsystemd「サービス」ファイルとともに出荷されていないというのは、バグまたは少なくとも欠落している機能のようです。
してみてください :
ln -s /etc/systemd/system/Apache2.service /etc/systemd/system/multi-user.target.wants/Apache2.service