У меня есть услуга foo
который в настоящее время начинается на уровне запуска 3 и выше. Как я могу остановить это, не используя update-rc.d foo stop 3 .
, который (если я правильно понимаю) отключал службу при каждом изменении уровня выполнения.
(т.е. если бы я был на уровне запуска 1 и включен foo
, затем, когда я перешел на уровень запуска 3 он бы отключился, нет?)
Запуск Debian GNU / Linux Lenny.
Настройте запускаемые приложения Linux с помощью sysv-rc-conf:
apt-get install sysv-rc-conf
Как указывали другие, здесь также update-rc.d для строки cmd.
Например, запустите
update-rc.d apache2 disable
чтобы отключить apache2 на всех уровнях запуска.
Термин «стоп» не препятствует запуску демона, а скорее завершает его работу при входе на указанный уровень выполнения.
Если вы просто хотите удалить службу / демон с одного уровня запуска, update-rc.d
как указано в Freiheit или просто удалите символическую ссылку из /etc/rcX.d/
, где X - ваш уровень выполнения. Если вы не хотите, чтобы служба запускалась автоматически, update-rc.d -f foo remove
сделает свое дело.
Короткий:
Нет надежного способа сделать это быстро.
Длинный:
Текущий Debian (нестабильный Debian по состоянию на 01.06.2012) в настоящее время не имеет надежного короткого пути для последовательного отключения службы / демона. - Поскольку обновление пакета демона безоговорочно запускает «/etc/init.d/package restart», независимо от того, отключен он для этого уровня запуска или нет.
Чтобы убедиться, что демон не запускается, вы можете:
Есть / был (?) Какой-то шаг init-policy-something для сценариев инициализации в Debian, который должен был заполнить эту недостающую функциональность. - Пытался использовать, нашел сложным, нашел ошибку и больше не трогал.
Обновить:
Переключитесь на «systemd», альтернативу «initd». Пакет debian существует, и вы можете отключить службу примерно так:
cd /etc/systemd/system
ln -s /dev/null xyz.service
Запустите эту команду
apt-get install rcconf
После установки запустите rcconf в SSH, и вы получите диалоговое окно, в котором отображаются все службы, установленные для запуска при загрузке. Выберите из них, нажав пробел, чтобы отключить / включить конкретное, и все готово, просто нажмите «ОК», и эта служба не будет беспокоиться о запуске снова при следующей загрузке. Пользуюсь этим годами. Очень удобный инструмент для таких пользователей Debian / Ubuntu, как я.
Я не понимаю, чего вы пытаетесь достичь.
Какие уровни запуска вы хотите, чтобы foo работал?
Если вы всегда хотите, чтобы он работал, используйте update-rc.d foo defaults
; который остановит его в 0, 1 и 6, оставив его работающим в 2, 3, 4 и 5. (1 не должен запускать ничего, кроме оболочки, 0 и 6 останавливаются и перезагружаются)
Если вы хотите точно указать, на каких уровнях запуска запускать:
update-rc.d foo stop 0 1 6 3 . start 2 4 5 .
Думаю, это сработает: insserv -r foo
Начните использовать insserv из Debian7
Вывод всех сервисов и информации об уровне выполнения
insserv --showall
Удалите перечисленные скрипты со всех уровней запуска
insserv --remove [specify_script]
Диспетчер загрузки Ubuntu - это своего рода sysv-rc-conf свет, более удобная версия с графическим интерфейсом, и многие люди, читающие эту ветку, оценят это.
В системе на основе красной шляпы вы можете использовать
chkconfig httpd off
chkconfig httpd --del
убрать сервер с уровней запуска
в системе на основе debian все службы должны запускаться файлами, находящимися в каталогах /etc/rc?.d/, эти файлы затем имеют символическую ссылку на соответствующие файлы в каталоге /etc/init.d/. Если вы хотите, чтобы служба не запускалась по умолчанию, вы можете переименовать / удалить ее из каталога /etc/rc?.d, и ваши изменения будут сохранены при обновлении пакета до тех пор, пока одна из стартовых ссылок все еще отображается в одной из другие (3,4 и 5) каталоги. Или вы можете использовать команду update-rc.d, чтобы изменить ссылку (и), и если вы хотите запустить службу после, вы можете использовать /etc/init.d/service_name start, если вы оставите начало с конца, он будет предоставить вам параметры, которые можно использовать, например, остановить, перезапустить, перезагрузить ...
Я думаю, вы можете использовать sysv-rc-conf, чтобы отключить его.
sudo update-rc.d SERVICE disable
Если вы хотите указать уровни выполнения.
sudo update-rc.d SERVICE disable|enable [S|2|3|4|5]
Не забудьте изменить служба к названию программы.
sudo service SERVICE restart
Почему бы вам не сделать резервную копию сценария запуска в другом месте и не удалить его в /etc/init.d/? Если update-rc.d не работает.