Apache и systemd

Apache и systemd

Я только что начал использовать Debian 8, в котором появился systemd. Мне не интересна политика вокруг SysV против systemd, но я в замешательстве, особенно вокруг Apache (2.4).

Теперь есть два способа перезапустить Apache:

  1. apache2ctl restartилиapache2ctl graceful
  2. systemctl restart apache2и, похоже, systemctl restart apache2.serviceон делает то же самое.

И они, похоже, делают разные вещи(!). Я не понимаю разницы.

Кажется, мне нужно сделать и то, и другое, чтобы обеспечить полноценный перезапуск. Например, после изменения файла конфигурации для модуля PHP изменение было отмечено только после обоих действий.

В другой раз, когда apache2ctl configtestпроизошел сбой и об этом было сообщено в , systemctl status apache2я исправил конфигурацию так, чтобы первая из этих команд работала успешно, перезапустил с , apache2ctl restartно команда systemd status по-прежнему показывала, что она не запущена, и со старой проблемой конфигурации.

Я обещаю потратить кучу времени на углубленное изучение systemd (RTFM) в какой-то момент, но пока что на практическом уровне, касающемся Apache, я был бы признателен за советы.

решение1

Если вам нужна согласованность, всегда используйте systemctlfor stop, start, и restart. Это приводит к использованию apache2ctlпрограммы — пока через /etc/init.d/apache2скрипт, но, возможно, из собственного systemdфайла модуля в будущем.

systemdне будет знать, когда вы использовали его apache2ctlнапрямую, что может привести (как вы обнаружили) к ситуации, когда systemdthinks apache2все еще находится в неисправном состоянии, хотя на самом деле он работает нормально.

Для configtestи statusиспользуйте apache2ctl. Они просто опрашивают Apache, не меняя его состояние.

Связанный контент