Назад | Перейти на главную страницу

Отключить запуск службы на всех уровнях запуска?

У меня есть услуга 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», независимо от того, отключен он для этого уровня запуска или нет.

Чтобы убедиться, что демон не запускается, вы можете:

  • удалить это
  • локально перенаправить скрипт /etc/init.d/xyz (таким образом, никакие инструменты его не найдут)
  • использовать / злоупотреблять конфигурационным файлом соответствующего пакета, чтобы спровоцировать ранний выход из этого сценария (например, поместите «выход» в начале / etc / default / xyz в случае, если он получен из сценария инициализации)
  • посмотрите в этом сценарии инициализации предопределенные «официальные» способы не запускать этот демон

Есть / был (?) Какой-то шаг 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 свет, более удобная версия с графическим интерфейсом, и многие люди, читающие эту ветку, оценят это.

http://www.marzocca.net/linux/bum.html

В системе на основе красной шляпы вы можете использовать

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 не работает.