Різні способи перезапустити Apache?


11

У мене тут питання про Apache.

Протягом усієї моєї кар'єри розробника я перезапускав Apache так:

sudo /etc/init.d/apache2 restart

Я тільки сьогодні розгорнув свою першу програму Rails, але у мене виникли проблеми з перезапуском Apache на хост-машині. Коли я спробував це таким чином, Apache спробував би перезапустити, але врешті-решт висітиме.

Однак це спрацювало чудово:

sudo apachectl restart

Які відмінності між цими двома методиками? Я припускав, що останній, у кращому випадку, був «синтаксичним цукром» для першого, але це не повинно бути так, враховуючи, що останні працювали в той час, як перший не робив цього.

Якщо це доречно (і я підозрюю, що це може бути), ця програма Rails використовує Phusion Passenger. Мій попередній досвід розробки (завдяки якому колишній метод працює добре) здебільшого стосується PHP. Я досить новачок у Rails.

Сервер, про який йде мова, працює Ubuntu 11.04 (Natty).


1
Ще одна альтернатива - це перезапуск сервісу apache2, хоча я не впевнений, чим це відрізняється від попередніх 2, якщо взагалі
Phil

Відповіді:


6
sudo /etc/init.d/apache2 restart

Цей метод використовує init-скрипти для вашого дистрибутива Linux для перезапуску процесу. Ці сценарії запускаються під час завантаження, щоб запустити apache.

sudo apachectl restart

У цьому методі використовується програма управління apachectl . Практично в кожному випадку я рекомендував би використовувати apachectl the для маніпуляції демона apache. У вас є більш тонкий контроль над тим, як процес перезапускається (див. Витончений проти перезавантаження), параметри перевірки конфігурації та спосіб отримати інформацію про стан.

Основна відмінність використання сценаріїв init для перезапуску apache та apachectl полягає в тому, що apachectl розроблений спеціально для того, щоб адміністратори могли керувати apache, тоді як скрипти init розроблені як узагальнений спосіб для Unixes запускати процеси після завантаження ядра та init daeamon.

EDIT: На жаль, я не знаю, як вирішити вашу проблему з Rails або Phusion Passenger. Спробуйте переглядати підказки Apache, щоб отримати підказки.


2
Як ви думаєте, що саме робитиме ваша ОС, коли вона перезавантажиться і ваш сервіс apache2 запуск не працює? Використання apachectl чудово для тестування та роботи розробників, але запуск серверів, які збираються викликати проблеми. Наклеювання його в rc.local також не є рішенням.
кашани

Я повинен зазначити, що я відповідаю лише на половину питання: різниця між двома методами перезапуску апаша. На жаль, я не знаю все про Рейки ... Якусь швидкість читаю над цим у перший раз.

Дякую за допомогу. Це усунуло відмінності між ними. Щодо речей Rails, я фактично вирішив це, перш ніж розміщувати тут. Apachectl насправді працював як чемпіон, тоді як метод init.d не став. Тож тепер я знаю! Спасибі.
Кріс Аллен Лейн
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.