Як автоматично запустити послугу (apache2) за допомогою Linux Mint


11

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

Запускаючи цю команду, вона переходить:

sudo service apache2 start

Як слід намагатися запустити цю послугу при кожному вході?


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

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

@Gilles, правильно я забув про це, дякую за виправлення. Однак чому апарат потрібно запускати під час завантаження? Не вдалося б виконати вхід приблизно однаково?
n0pe

@MaxMackie Не, якщо ви не входите відразу після завантаження, очевидно. Також Apache не працює як ви, тому вам доведеться надавати йому привілеї. Він повинен починатися з частини скриптів завантаження, і, як правило, так.
Жил "ТАК - перестань бути злим"

@Gilles направо. Дякуємо за пролиття світла на це.
n0pe

Відповіді:


12

Debian (Ubuntu / Linux Mint)

rcconf (CLI-GUI)

sudo apt-get install rcconf
sudo rcconf

update-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 додати 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

Ще однією причиною цієї ж проблеми є пріоритет апач-ланок у 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 .... / тощо / apache / sites-enable / mysite: Немає такого файлу чи каталогу

Річ у тому, що вона mysiteбула пов'язана з файлом у моїй домашній папці.

Це, як правило, не повинно бути проблемою, я подумав.

Але наскільки я знаю, моя домашня перегородка зашифрована . Тому я здогадуюсь, що Apache не міг прочитати файл віртуального сайту під час завантаження. Файл не був доступний, поки я не ввів свій пароль.

Складна ситуація, і на її розроблення пішли місяці :)


То як же ви це розробили?
Jonas Äppelgran

0

Нова відповідь оновлена ​​у 2019 році:

sudo systemctl почати httpd

sudo systemctl включити httpd

Команда systemctl - це новий інструмент для управління системою і сервісом. Це заміна старого управління системою inSit. Більшість сучасних операційних систем Linux використовують цей новий інструмент. Якщо ви працюєте з системою CentOS 7, Ubuntu 16.04 або новішої версії або Debian 9. Зараз вони вибрали systemd.

Увімкнений сервіс автозапускається під час завантаження системи. Це аналогічний варіант для systemd, ніж chkconfig для init SysV.


1
Ви можете подумати прогорнути замовлення, щоб воно було ввімкнено перед тим, як попросити його почати.
Jeff Schaller
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.