Как автоматически запустить сервис (apache2) с Linux Mint


11

(Strangley) Мой установленный Apache2 не запускается при входе в Linux Mint.

Выполнение этой команды дает начало:

sudo service apache2 start

Как мне попытаться запустить эту службу при каждом входе в систему?


Вы можете поместить эту команду ~/.xinitrc, которая будет запускаться при запуске.
n0pe

2
@MaxMackie Напротив, ~/.xinitrcзапускается во время входа в систему, что не правильно. Apache должен быть запущен пользователем root во время загрузки.
Жиль "ТАК - перестань быть злым"

@ Жиль, верно, я забыл об этом, спасибо за исправление. Однако почему apache нужно запускать при загрузке? Разве логин не достиг бы примерно того же самого?
n0pe

@MaxMackie Нет, если вы не вошли сразу после загрузки, очевидно. Кроме того, Apache работает не так, как вы, поэтому вам придется предоставить ему привилегии. Это должно начаться в части сценариев загрузки, и обычно делает.
Жиль "ТАК - перестань быть злым"

@ Жиль правильно. Спасибо, что пролил свет на это.
n0pe

Ответы:


12

Debian (Ubuntu / Linux Mint)

rcconf (CLI-GUI)

sudo apt-get install rcconf
sudo rcconf

обновление-rc.d

sudo update-rc.d -f apache2 add

или же

sudo update-rc.d apache2 defaults

RedHat / Fedora / CentOS

chkconfig

sudo chkconfig --add apache2

или же

sudo chkconfig -- level 35 apache2 on

Apache уже был проверен, когда я запустил rcconf.
eoinoc

Выполнение update-rc.dкоманды приводит к ошибке: update-rc.d: warning: apache2 start runlevel arguments (none) do not match LSB Default-Start values (2 3 4 5).
eoinoc

Вы дали update-rc.d apache2 по умолчанию или update-rc.d -f apache2 add 3 5
earthmeLon

1
Спасибо, но не сработало. Первое привело к предупреждению «уже существует», второе привело к warning: apache2 start runlevel arguments (none) do not batch LSB default-Start values (2 3 4 5).
eoinoc

6

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

Этот сайт предоставляет подробную кулинарную книгу для запуска Apache при загрузке.


На этой странице рассказывается о размещении скрипта bash /etc/init.d/apache2. Но этот файл уже полон намного более сложного скрипта bash, который должен быть размещен там самим Apache.
Eoinoc

3

Другая причина этой проблемы - приоритет ссылок apache в rc [0-6] .d. У меня были S90 и K09, и Apache не запускался при загрузке. Установка приоритетов по умолчанию, 20, работала на меня. Существующие ссылки должны быть удалены в первую очередь.

sudo update-rc.d -f apache2 remove
sudo update-rc.d apache2 defaults

2

При выключении я увидел ошибку:

Синтаксическая ошибка в строке 230 файла /etc/apach2/apache.conf .... / etc / apache / sites-enable / mysite: такого файла или каталога нет

Дело было в том, что mysiteбыла сделана ссылка на файл в моей домашней папке.

Это обычно не должно быть проблемой, подумал я.

Но, насколько я знаю, мой домашний раздел зашифрован . Поэтому я предполагаю, что Apache не мог прочитать файл виртуального сайта во время загрузки. Файл не был доступен, пока я не введу свой пароль.

Сложная ситуация, и потребовались месяцы, чтобы решить это :)


Так как ты это сделал?
Йонас Эппелгран

0

Новый ответ обновлен в 2019 году:

sudo systemctl начать httpd

sudo systemctl включить httpd

Команда systemctl - это новый инструмент для управления системой и сервисом systemd. Это замена старой системы управления инициализацией SysV. Большинство современных операционных систем Linux используют этот новый инструмент. Если вы работаете с CentOS 7, Ubuntu 16.04 или новее или системой Debian 9. Теперь они выбрали systemd.

Включенная служба автозапускается при загрузке системы. Это аналогичная опция для systemd, чем chkconfig для инициализации SysV.


1
Возможно, вы захотите перевернуть ордер, чтобы он был включен, прежде чем вы попросите его запустить.
Джефф Шаллер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.