Apache2 не удается запуститься на начальной загрузке с Ubuntu 16.04

Я только что создал новый сервер Ubuntu 16.04 (на цифровом океане, если он имеет значение). Я настроил Apache2, и он работает правильно, но на каждом перезапуске ему не удается загрузиться.

Я получаю следующий systemctl состояние:

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 является поддерживающим, я становлюсь "статичным":

root@twl-ubuntu-2gb-sgp1-01:~# systemctl is-enabled apache2.service 
static

Даже после выполнения systemctl включают его, не изменяется:

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

Но у апача нет проблем при запуске. Когда я работаю, systemctl запускаются вручную, это работает просто великолепно:

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, только недавно обновленным до 16,04 от 14,04. Где я иду не так, как надо, или возможно, что я могу сделать для отладки, почему apache2 отказывается запускаться?

Обновите 1 (2016-07-14)

Оказывается, что Apache загружается, но получает SIGTERM, как только это запускается. Единственная строка в файле журнала:

[Wed Jul 13 21:37:15.730331 2016] [mpm_prefork:notice] [pid 1871] AH00169: caught SIGTERM, shutting down

Какие-либо идеи, как получить лучшее сообщение об ошибке? Поскольку я упомянул, что работал systemctl start apache2 сразу после того, как начальная загрузка запускает все очень хорошо.

Обновите 2 (2016-07-15)

Оказывается, что 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 все еще отчеты это как "неактивные (мертвые)"

2
задан 15 July 2016 в 03:43

2 ответа

Я искал , что static состояние is-enabled средства, и нашли что:

В этом контексте, статичном, означает, что файл единицы не содержит раздел "установки", который используется для включения единицы. По сути, эти единицы не могут быть включены.

кроме того, я нашел, что пакет Apache2 содержит только systemd, включают файл, не полный файл:

 # /lib/systemd/system/apache2.service.d/apache2-systemd.conf
 [Service]
 Type=forking
 RemainAfterExit=no

кажется, что остаток от логики для управления процессом Apache2 прибывает из использования контейнера, который позволяет systemd запускать скрипты SysVinit. Так попытайтесь позволить Apache2 работать при начальной загрузке с помощью символьной ссылки в каталоге SysVinit:

ln -s /etc/init.d/apache2 /etc/rc5.d/S02apache2

на ошибку или по крайней мере недостающую возможность кажется, что Apache2 не поставлется с полным systemd 'сервисным' файлом на Ubuntu 16.04.

2
ответ дан 2 December 2019 в 03:46

Попробуйте:

ln -s /etc/systemd/system/apache2.service /etc/systemd/system/multi-user.target.wants/apache2.service
0
ответ дан 2 December 2019 в 03:46

Другие вопросы по тегам:

Похожие вопросы: