Я только что начал использовать Debian 8, в котором появился systemd. Мне не интересна политика вокруг SysV против systemd, но я в замешательстве, особенно вокруг Apache (2.4).
Теперь есть два способа перезапустить Apache:
apache2ctl restart
илиapache2ctl graceful
systemctl restart apache2
и, похоже,systemctl restart apache2.service
он делает то же самое.
И они, похоже, делают разные вещи(!). Я не понимаю разницы.
Кажется, мне нужно сделать и то, и другое, чтобы обеспечить полноценный перезапуск. Например, после изменения файла конфигурации для модуля PHP изменение было отмечено только после обоих действий.
В другой раз, когда apache2ctl configtest
произошел сбой и об этом было сообщено в , systemctl status apache2
я исправил конфигурацию так, чтобы первая из этих команд работала успешно, перезапустил с , apache2ctl restart
но команда systemd status по-прежнему показывала, что она не запущена, и со старой проблемой конфигурации.
Я обещаю потратить кучу времени на углубленное изучение systemd (RTFM) в какой-то момент, но пока что на практическом уровне, касающемся Apache, я был бы признателен за советы.
решение1
Если вам нужна согласованность, всегда используйте systemctl
for stop
, start
, и restart
. Это приводит к использованию apache2ctl
программы — пока через /etc/init.d/apache2
скрипт, но, возможно, из собственного systemd
файла модуля в будущем.
systemd
не будет знать, когда вы использовали его apache2ctl
напрямую, что может привести (как вы обнаружили) к ситуации, когда systemd
thinks apache2
все еще находится в неисправном состоянии, хотя на самом деле он работает нормально.
Для configtest
и status
используйте apache2ctl
. Они просто опрашивают Apache, не меняя его состояние.