Вопрос Как начать определенные службы только по мере необходимости?


У меня есть ноутбук. Я использую его для электронной почты + много, а затем несколько дней для веб-разработки. Используя его для последнего, мне нужен сервер apache2 и mysql, но обычно я этого не делаю.

Я бы хотел, чтобы нормальная загрузка НЕ ​​запускала apache и mysql, чтобы сохранить мощность, уменьшить время загрузки и т. Д., Но затем, чтобы иметь возможность запускать эти службы, когда это необходимо.

В прежние времена я мог бы использовать уровни запуска для этого, но теперь это немного старое skool, как я понимаю. Каков наилучший способ достичь этого в Precise?


1
2017-07-18 18:24


происхождения




ответы:


Чтобы остановить запуск mysql при загрузке:

sudo echo "manual" | sudo tee /etc/init/mysql.override

Чтобы остановить запуск apache2 при загрузке:

sudo update-rc.d apache2 disable 2

Всякий раз, когда вам нужно запускать mysql или apache2, все, что вам нужно сделать, это запустить сервис самостоятельно (и вы также можете остановить оба вручную).

Вы можете использовать

sudo apache2ctl {start|stop|restart}

для этого и

sudo service mysql {start|stop}

для mysql.


3
2017-07-18 18:35



комментарий: я сделал 1-ю 2 команды из памяти (если они ошибаются, не кричите;), но не стесняйтесь редактировать мой ответ). - Rinzwind
да, это apache2ctl в настоящее время (слишком маленькое редактирование, разрешаемое). Спасибо: первые два являются полезными. Старые уровни запуска были весьма удобны для такого рода вещей. Я вроде как ожидал, что будет выскочка, чтобы запустить оба приложения для запуска (mysql должен идти до apache, в идеале). - artfulrobot
Ваше приложение apache, когда mysql не предшествует ему, является неудачным BTW. Подумайте об отключении питания центра обработки данных .. сервер БД может занять несколько минут, чем веб-серверы, чтобы вернуться. Деградирует изящно FTW. - SpamapS


Способ сделать это с хорошими уровнями:

MySQL теперь использует сценарий выскочки, но внутри он все еще говорит о уровнях выполнения. редактировать /etc/init/mysql.conf и изменить строки, как в этом разном:

-start on runlevel [2345]
-stop on starting rc RUNLEVEL=[016]
+start on runlevel [345]
+stop on starting rc RUNLEVEL=[0126]

Apache2 все еще использует ссылки runlevel rc.N.d:

sudo update-rc.d -f apache2 remove 
sudo update-rc.d apache2  start 91 3 4 5 . stop 09 0 1 6 .

Затем при нормальной загрузке (уровень запуска 2) они не будут запущены, и когда вы это сделаете sudo telinit 3, они будут.


2
2017-07-18 19:44



Почему бы не добавить 2 в качестве остановки, чтобы остановить apache2 при возврате на уровень запуска 2? - Sylwester
@Sylwester Да, вы правы, просто недосмотр в моем ответе. Благодарю. - artfulrobot


вы можете использовать программы, указанные в ссылке Смотри сюда а также Вот


-1
2017-07-18 18:34



Пожалуйста, воздержитесь от демпинговых ссылок. Это не помогает, когда люди ищут этот сайт и ссылки, как правило, гниют. - Rinzwind