Я ищу способ получить список всех сервисов (/etc/init.d или upstart или systemd), которые должны запускаться (или были запущены) при загрузке.
Как вы получаете список всех стартовых услуг? - Я знаю этот вопрос, и он предлагает использовать service --status-all
.
Но это не показывает мне, какие услуги должны быть запущены . Он вызывает все сценарии инициализации с status
аргументом " ". Это список всех служб, которые могут быть запущены.
Но я хотел бы знать, если служба, которая была запущена при загрузке, все еще работает.
Пример…
У меня установлены webfs. Но я не хочу, чтобы он работал при загрузке. Таким образом , я отключил его: sudo update-rc.d webfs disable
. И у меня также установлена Samba, и она должна работать при загрузке. Но это остановлено (по любой причине). sudo service --status-all
не помогает мне здесь:
$ sudo service --status-all 2>/dev/null | grep -E 'samba$|webfs'
[ - ] samba
[ - ] webfs
Оба выключены, но я не понимаю, этот (самба) должен быть включен.
Так…
Как я могу получить список всех служб, которые запускаются при загрузке? И, как расширение, есть простой способ получить «статус» этих сервисов (если нет, я просто переберу этот список и запущу «service $ service status», или что-то вроде этого).
Спасибо Александр
Edit 2015-05-04: я нахожусь на Ubuntu 14.04.
Основное внимание в этом вопросе заключается в следующем:
Но я хотел бы знать, если служба, которая была запущена при загрузке, все еще работает.
Из-за этого initctl list
не очень помогает. На самом деле он не учитывает сервисы, запускаемые /etc/init.d
скриптами (по сравнению с выскриптовыми скриптами в /etc/init
).
Также список /etc/rc?.d/S*
не помогает. Это создаст список служб, которые могут быть запущены на заданном уровне выполнения. Это не показывает мне, если служба, которая должна была быть запущена, все еще работает.
По сути, я ищу что-то вроде svcs -x
Solaris для Ubuntu. С помощью svcs -x
я бы получил вывод, если служба, которая была запущена, больше не работает. Это мне понадобится и для Ubuntu.
Причина: я хотел бы иметь (более или менее ...) общую проверку для нашей системы мониторинга Icinga / Nagios, которая предупредила бы меня, если служба больше не работает, которая должна работать. Поскольку у нас есть много разных серверов для множества разных клиентов, на самом деле не требуется масштабировать список «важных» сервисов.
источник
initctl list
какие процессы запускаются / работают, но этот список также включает процессы, которые запускаются вручнуюinitctl list
. Но это на самом деле не отвечает, так как это также показало бы запущенные вручную службы. И это не показывает сервисы, которые не работают.Ответы:
Все сервисы запускаются при запуске:
Список всех сервисов, которые существуют в системе:
источник
Вот мой лайнер
grep -i 'runlevel' /etc/init/* | awk '!/#/ && /start on/ && /2/ {gsub("/"," "); print $0 }' | cut -d ' ' -f4-
Чуть более чистый выход может быть достигнут с
grep -i 'runlevel' /etc/init/* | awk '/start on/ && /2/ {gsub("/"," "); gsub(":", " ");gsub(".conf"," "); print $3 }'
Теперь давайте углубимся в детали. Работы Upstart все хранятся в
/etc/init/
, верно? У всех рабочих мест есть строки с указанием уровня запуска. Уровень запуска 2 - это обычный загрузчик, уровень запуска по умолчанию. Таким образом, если мы grep всех строк, которые говорятrunlevel
и очищают вывод grep с помощью awk, чтобы соответствовать только строкам сstart on
уровнем запуска # 2, мы получим список выскочивших заданий. Остальное только для форматирования потребностей, замените / в именах файлов на пробел и обрежьте путь к этим файлам, оставив сами имена файлов.!/#/
Часть по адресу , возможно , закомментированного стартовые директивы, которые я лично добавленных вручную.Среди прочего, есть место
/etc/rc2.d
(если я правильно понимаю), у вас есть сценарии с меньшим приоритетом.Сырая однострочка это:
ls /etc/rc2.d/* | grep S | awk '{sub("S"," "); print $2}
Сценарии, которые в этой папке на самом деле выполняются на уровне выполнения 2, имеют имя, начинающееся с S, за которым следует номер приоритета. Теперь, в основном, мы получаем все файлы, начинающиеся с S, и просто перечисляем их только с именем с приоритетом (все еще нужно выяснить, как их очистить).
Как должным образом указано в комментариях в muru, есть также
/etc/init/*.override
файлы, которые могут «.. .Modify, как работа будет выполняться без непосредственного изменения файла конфигурации» ( страница инициализации init )В настоящее время, поскольку у меня нет большого опыта работы с этими файлами, я могу только предложить просмотреть эти файлы .override, используя 'grep' manual '/etc/init/*.override', чтобы вывести список служб, которые должны быть запущены. вручную с помощью
initctl
илиservices
команд.источник
.override
файлов.Перечислите все сервисы и соответствующий статус уровня выполнения - стиль chkconfig:
Интерактивное текстовое редактирование всего перечисленного:
Возможно, придется установить его, если не там:
источник