3

Ubuntu использует upstart вместо sysvinit. Однако все еще есть уровни выполнения и ссылки в них.

Я установил Tor, и он добавил себя к запуску ОС. Теперь я хочу удалить его, и популярными вариантами являются удаление ссылок на запуск и остановку службы с уровней запуска или отключение сценария /etc/init.d/. Это нормально, но это будет проблематично, если я захочу снова включить tor в список автозагрузки. Как бы я знал, чтобы поместить правильные последовательности в соответствующие каталоги уровня запуска.

Дано ли полное руководство? Каковы правила для этого? Какие-нибудь инструменты для управления init?

Расскажите пожалуйста

3 ответа3

8

SysVinit работает так. Сценарии инициализации для каждого пакета находятся в /etc/init.d. Ссылки на эти скрипты находятся в /etc/rcS.d и /etc/rc[0-6].d. Эти ссылки начинаются с S (начало) или K (уничтожение) и двухзначного числа.

  • Когда система загружается и запускается процесс SysVinit, он просматривает /etc/rcS.d и выполняет сценарии, начиная с S, упорядоченные по номеру. (Я полагаю, что он передает аргумент "start" сценариям, но я не уверен.)

  • После обработки всех сценариев /etc/rcS.d система начинает переходить на определенный уровень выполнения. В Ubuntu при загрузке с обычного рабочего стола уровень запуска по умолчанию равен 2. Так что SysVinit выглядит в /etc/rc2.d и

    1. останавливает все сервисы со ссылками, начинающимися с K, упорядоченными по номеру; а также
    2. запускает все сервисы со ссылками, начинающимися с S, упорядоченными по номеру.

    Если вы вместо этого загрузились в режиме восстановления Ubuntu, вы загрузитесь до уровня запуска 1. После запуска всех служб уровень запуска системы официально устанавливается.

  • Наконец, система запускает скрипт /etc/rc.local.

Если вы переключите уровни выполнения позже, SysVinit запустит тот же базовый процесс: он не проверяет /etc/rcS.d, но переходит непосредственно к обработке ссылок в /etc/rcN.d (где N - это тот, который вводится на уровне запуска).


Вы также можете написать сценарий Upstart. Я писал об Upstart ранее, так что проверьте там для более подробной информации. Upstart-скрипты хранятся в /etc/init ; чтобы написать их, просмотрите существующие сценарии, чтобы понять, как они работают, и прочитайте справочную страницу init(5).

1

Я знаю только update-rc.d как инструмент. Страница руководства дает хорошее объяснение, как использовать это, и это не слишком трудно изучить.


Спасибо Кряку, который рассказал мне о chkconfig . Проверьте его пост здесь .

0

Вот справочная страница update-rc.d. По сути, удаление ссылок rc.d не будет работать, так как они будут восстановлены при обновлении. Правильный путь:

sudo update-rc.d tor disable

Который переименовывает ссылки S (начало) в /etc/rc?.d в ссылки K (остановка). Это также будет работать:

sudo rename 's:/S:/K:g' /etc/rc?.d/S*tor

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .