it-swarm-ru.tech

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

У меня есть служба foo, которая в настоящее время начинается с уровня запуска и выше. Как я могу остановить это, не используя update-rc.d foo stop 3 ., который (если я правильно понимаю) будет отключать службу при каждом изменении уровня выполнения.

(т. е. если бы я был на уровне выполнения 1 и включил foo, то при переходе на уровень выполнения он будет отключен, нет?)

Работает Debian GNU/Linux Lenny.

61
lfaraone

Термин "стоп" не запрещает запуск демона, а скорее закрывает его при входе в указанный уровень выполнения.

Если вы просто хотите удалить сервис/демон из одного уровня выполнения, update-rc.d как указано bei freiheit или просто удалите символическую ссылку из /etc/rcX.d/, где X - ваш уровень выполнения. Если вы не хотите, чтобы служба запускалась автоматически, update-rc.d -f foo remove сделает свое дело.

58
PEra

настроить загрузочные приложения Linux с помощью sysv-rc-conf :

apt-get install sysv-rc-conf

Как уже отмечали другие, здесь также pdate-rc.d для строки cmd.

Например, запустить

update-rc.d Apache2 disable

отключить Apache2 со всех уровней запуска.

56
Not Now

Короткий:

Нет надежного способа сделать это быстро.

Длинный:

Текущий Debian (Debian нестабильный по состоянию на 2012-06-01) в настоящее время не имеет надежного краткого способа последовательного отключения службы/демона. - Поскольку обновление пакета демона безоговорочно запускает "/etc/init.d/package restart", отключая его для этого уровня запуска или нет.

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

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

Существует/был (?) Некоторый шаг init-policy-что для сценариев инициализации в Debian, который должен был заполнить эту недостающую функциональность. - Я пытался его использовать, нашел его сложным, нашел ошибку и больше никогда ее не трогал.

Обновление:

Переключитесь на "systemd", альтернативу "initd". Пакет Debian существует, и вы можете отключить службу с помощью чего-то вроде этого:

cd /etc/systemd/system
ln -s /dev/null xyz.service
15
Robert Siemer

Запустите эту команду

apt-get установить rcconf

После установки запустите rcconf в SSH, и вы получите диалоговое окно, отображающее все службы, настроенные для запуска при загрузке. Выберите те, нажав пробел, чтобы отключить/включить конкретный, и все готово, просто нажмите Ok, и этот сервис не удосуживается запустить снова при следующей загрузке. Использование этого в течение многих лет. удобный инструмент для пользователей Debian/Ubuntu, таких как я.

5
Mark Levinsky

Я думаю, что это сделает работу: insserv -r foo

3
user38551

Я запутался в том, что ты пытаешься сделать.

На каких уровнях запуска вы хотите запустить foo?

Если вы всегда хотите, чтобы он работал, используйте update-rc.d foo defaults; это остановит его в 0, 1 и 6, оставив его работающим в 2, 3, 4 и 5. (1 не должен запускать ничего, кроме Shell, 0 и 6 останавливаются и перезагружаются)

Если вы хотите точно указать, на каких уровнях запуска запускать:

update-rc.d foo stop 0 1 6 3 . start 2 4 5 .
2
freiheit

Начните использовать insserv из Debian7

Вывести все сервисы и информацию об уровне выполнения

insserv --showall

Удалить перечисленные скрипты со всех уровней запуска

insserv --remove [specify_script]
1
cocoa

Почему бы вам не сделать резервную копию сценария запуска в другом месте и удалить его в /etc/init.d/? Если update-rc.d не работает.

0
Kosaka Honoka

Диспетчер загрузки Ubuntu - это своего рода sysv-rc-conf light , более дружественная версия с графическим интерфейсом, и многие, читающие эту ветку, оценят это.

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

0
the_guv

В системе на базе Red Hat вы можете использовать

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, чтобы отключить его.

0
Rodent43
Sudo update-rc.d SERVICE disable

Если вы хотите указать уровни запуска.

Sudo update-rc.d SERVICE disable|enable [S|2|3|4|5]

Не забудьте изменить service на название программы.

Sudo service SERVICE restart
0
Eddie