Ubuntu12.04: Как отключить процесс демона при запуске

Используйте Ctrl-a a или измените нажатие клавиши Escape экрана (опция -e).

23
02.11.2012, 21:40
7 ответов

Можно отключить сервисы путем выполнения следующей команды:

sudo update-rc.d -f <service name> disable

Выборка страницы справочника:

Когда выполнено с запрещать опциями [S|2|3|4|5], обновление-rc.d изменяет существующие ссылки runlevel для сценария/etc/init.d/name переименованием, запускают ссылки для остановки ссылок с порядковым номером, равным различию 100 минус исходный порядковый номер.

26
27.01.2020, 19:41
  • 1
    , который у меня нет достаточной репутации, чтобы вниз проголосовать за это и выполнение так без объяснения, был бы невежлив так или иначе, таким образом просто комментарий: вопрос @Noob принадлежит Ubuntu 12.04, которая использует Выскочку (/etc/init / *.conf конфигурационные файлы) для большинства системных демонов (как упомянуто @Noob), в то время как Ваше предложение только работает на демонов, запущенных использовать сценарии в/etc/init.d /* (старый стиль SysV).Править: Для записи warl0ck имеет правильный ответ (Спасибо!). –  xolox 01.08.2013, 19:47
  • 2
    Вопрос о гипотетическом или в целом ситуации с помощью mysql как конкретный актуальный случай. OP казался по крайней мере частично знающий об этом ответе, но он может служить потомству хорошо, чтобы отметить, что некоторые полезные пакеты не делают и не будут соблюдать новомодный формат (как webmin и многие самосозданные из исходных пакетов во время комментария). Это означает, что этот метод может быть действительным частичным ответом для контекста, во многом как warl0ck, и ответы Mark's делают для обращения к конкретной точке гипотетического mysql обслуживания, установленного с диспетчером пакетов. –  JustinC 02.10.2013, 18:01
  • 3
    Флаг-f не нужен. верный –  dannyman 07.11.2014, 02:28

Корректный способ отключить и новомодный сервис, создают файл XX.override,

echo 'manual' > /etc/init/mysqld.override

Тем путем новомодный сервис не начнет автоматически

20
27.01.2020, 19:41
  • 1
    Это все еще работает с Ubuntu 12.04? –  RSK 01.02.2014, 13:12
  • 2
    @RSK да, почему Вы только не даете ему попытку? –  daisy 02.02.2014, 04:51
  • 3
    я попробовал и не сделал работавший для меня. Позвольте мне попробовать еще раз, и обновит Вас. –  RSK 07.02.2014, 18:36
  • 4
    Нет, это не работает над Ubuntu 14.04. –  Hi-Angel 05.03.2015, 06:13
  • 5
    @RSK yes, why don't you just give it a try? Я предполагаю, потому что это очень неудобно для перезапуска системы с "попыткой" к каждому советовать от этой страницы. –  user907860 09.01.2016, 17:21

@warl0ck имеет его правильный; требуемый, чтобы добавить, что эта информация документируется вполне хорошо в Новомодной документации: http://upstart.ubuntu.com/cookbook/#disabling-a-job-from-automatically-starting

Конкретно:

С Выскочкой 1.3, можно использовать файлы переопределения и ручную строку файла конфигурации для достижения того же результата более простым способом [27]:

# echo "manual" >> /etc/init/myjob.override

Обратите внимание, что Вы могли достигнуть того же эффекта путем выполнения этого:

# echo "manual" >> /etc/init/myjob.conf

Однако использование средства переопределения означает, что можно оставить исходный конфигурационный файл задания нетронутым.

Чтобы вернуться к исходному поведению, или удалить или переименовывают файл переопределения (или удалите ручную строку файла конфигурации из своего ".conf" файла).

7
27.01.2020, 19:41

Существует также хорошая часть программного обеспечения для помощи в этом. Его названный rcconf.

Просто загрузка это использование:

sudo apt-get install rcconf

и используйте его с командой

rcconf

Вы заставляете хорошее (командная строка) интерфейс отключать/разрешать сервисы.

5
27.01.2020, 19:41
  • 1
    Это не включено в систему, так установите больше материала woudn't быть лучшим ответом. –  m3nda 11.06.2015, 16:28
  • 2
    , но действительно usefull :D –  Magico 13.12.2016, 20:32

Попытка перешла к /etc/rc2.d и переименуйте то, что Вы хотите не выполнить при запуске: изменитесь (начальная буква, капитал) "S" в "K" (например, S02mysql кому: K02mysql). Если Вы передумали, просто инвертируете его. Я думаю, что эти 2 относятся к runlevel, в том, какой случай 2 является значением по умолчанию, многопользовательским runlevel. Вероятно, это - то, где у Вас есть большая часть материала для ежедневного компьютерного использования.

Править: Комментарий Read James O'Gorman's ниже.

1
27.01.2020, 19:41
  • 1
    Да '2' относятся к уровню выполнения. Можно проверить текущее использование уровня выполнения who -r или runlevel. вывод –  RanRag 03.11.2012, 08:42
  • 2
    Это правда, who --runlevel. –  Emanuel Berg 04.11.2012, 05:22
  • 3
    В то время как это достигает того, что Вы хотите, это - технически неправильный поступок. В терминах SysV init сценарии 'S' являются сценариями запуска, и 'K' являются сценариями уничтожения - т.е. S выполняются в порядке при запуске, и K выполняются в порядке на завершении работы (или изменяющийся на более низкий runlevel). –  James O'Gorman 05.11.2012, 23:05
  • 4
    : Интересный, я нахожусь на Debian, Вы говорите мой "K, скрипты" запущены на завершении работы? Есть ли некоторая буква, которая могла использоваться для отключения сценария в целом без опасности вообще? (Это довольно практично для хранения их в той же папке, должен новая ситуация возникать, где Вы хотели бы их.) –  Emanuel Berg 06.11.2012, 00:31
  • 5
    @EmanuelBerg Да, init будет выполнять 'остановку KXXscript' на завершении работы. Необходимо или удалить символьную ссылку или удалить выполнить бит из реального init сценария. Я верю использованию Debian update-rc.d управлять этим. RHEL (и производные) использование chkconfig. –  James O'Gorman 06.11.2012, 20:49

Что ж, я должен сказать, что утверждение

echo "manual" >> /etc/init/myjob.override

немного вводит в заблуждение, потому что оно означает добавление файла переопределения. Я тестировал это 14.04 с помощью сетевого менеджера, и следующее не сработало

vim /etc/init/network-manager.override:
start
manual

Однако это сработало

vim /etc/init/network-manager.override:
#start
manual

Итак, IMO, initctl ищет первую строку без комментариев и выполняет ее. Возможно, я ошибаюсь, но это были мои результаты тестов. Отзывы приветствуются.

0
27.01.2020, 19:41

В Upstart конфигурация службы находится в файлах в / etc / init / . Например, ssh управляется с помощью файла конфигурации /etc/init/ssh.conf

. Этот файл определяет «события», которые заставят Upstart начать «задание».

Чтобы предотвратить автоматический запуск службы, можно использовать один из нескольких методов:
a) Переименуйте файл service.conf так, чтобы он не заканчивался на .conf
{{1 }} б) Закомментируйте строку "start on" в файле service.conf.

В более новых версиях выскочки (по крайней мере, начиная с версии 1.3) вы также можете переопределить запуск онлайн, используя файл service.override, поэтому вы можете использовать:
# echo manual> / etc / init / service. override

Наконец, вы также можете добавить ключевое слово "manual" в конец файла конфигурации службы, например, через:
# echo manual >> /etc/init/service.conf

Обратите внимание, что это не "остановить" запущенную службу, она просто не дает ей запуститься автоматически. При установке на «ручной» запуск вы управляете службой с помощью initctl, например, для остановки и запуска демона SSH:
# initctl stop ssh
# initctl start ssh

Пожалуй, лучшая документация для Upstart находится на http://upstart.ubuntu.com/cookbook/

Раздел 11.44 посвящен «отключению службы от автоматического запуска», здесь: http://upstart.ubuntu.com/cookbook/#dispting-a- задание-из-автоматически-запускаться

0
27.01.2020, 19:41

Теги

Похожие вопросы