Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Уровни запуска в RedHat и управление службами.  (Прочитано 19426 раз)
0 Пользователей и 1 Гость смотрят эту тему.
McZim
Модератор

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« : 07-07-2009 09:25 » 

Всем привет, меня давно мучает вопрос и никак не могу найти внятного ответа на этот вопрос. Допустим добавлям службу samba:

Код:
chkconfig --add samba
Код:
chkconfig --levels 345 samba on

Если не указывать уровни 345, то не работает проверено! вот вопрос что происходит на каждом уровне с этим сервисом? На каждом уровне отработывают разные составляющие службы? Как тогда учесть на каких уровнях нужно запускать самописную службу. Был опыт создания казалось бы просто службы, которая точно должна запускаться, например на 3-ем уровне, но без укзаания опять же уровней 345 запуск не происходил.

Еще вопрос что еще умеет service кроме обращения к службам. То есть я ведь могу сделать /etc/init.d/служба start|stop|restart, зачем было для этого делать service? Service еще умеет смотреть состояния служб и делать full-restart но я и так это могу сделать, может что она умеет о чем я не знаю, каково назначение этой утилиты?

В нете по этим вопросам ничего не нашел вменяемого.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 07-07-2009 14:08 » 

McZim, см. /etc/inittab - уровень загрузки по умолчанию. Типично это 3 (multiuser), а для десктопных - 5 (multiuser, X-Window).

Если тебе не нравится chkconfig, делай руками.

Директории:
/etc/rc.d/init.d — здесь лежат скрипты служб.
/etc/rc.d/rc[0-6].d — тут, по разным уровням загрузки (0..6) лежат симлинки на скрипты (выше).

Имена симлинков: [KS][0-9][0-9]имя
Первая буква указывает на действие: K - остановить (kill), S - запустить (start).
Следующие две цифры указывают приоритет (порядок) запуска.
При входе на уровень запускаются сперва все K-скрипты, для остановки служб, а потом все S-скрипты, для запуска. Первым при запуске передается параметр stop, вторым - start.

Для совместимости со всякими MDK и т.п. дистрибутивами также есть симлинки для директорий:
/etc/init.d -> /etc/rc.d/init.d
/etc/rc[0-6].d -> /etc/rc.d/rc[0-6].d

Для chkconfig еще используют доп.инфу в начале скрипта. Например, из acpid:
Код:
#!/bin/bash
#
#       /etc/rc.d/init.d/acpid
#
# Starts the acpi daemon
#
# chkconfig: 345 44 56
# description: Listen and dispatch ACPI events from the kernel
# processname: acpid

Инфа говорит, что запускаться должно на уровнях 345 с приоритетом 44, а останавливаться - на 0126 с приоритетом 56.

Описание уровней:
0 - halt
1 - single user - административный режим
2 - single user без поддержки сети
3 - multi user
4 - multi user без поддержки сети
5 - multi user с графическим логином
6 - reboot

Уровни 2 и 4 практически не используются. Уровень 1 используется только для системных настроек, т.к. обычно это работа с консолью, остановленными службами и отмонтированными доп разделами, либо смонтированными в read only.
« Последнее редактирование: 07-07-2009 14:20 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #2 : 07-07-2009 14:11 » 

Я буду говорить на примере Федоры. Но думаю, почти также будет в красной шапочке. В федоре, в отличии от Дебиан. Загрузка иксов происходит на пятом уровне. на третьем уровне система полностью готова в режиме терминала. Четвертый уровень не используется. Хотя его init.d проходит.
Такая система с одной стороны более удобна. Не нужно лазить и отключать демонов. Достаточно в /etc/inittab поменять уровень загрузки.

Уровень загрузки говорит о том, что на данном уровне данный сервис должен быть загружен и включен.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 07-07-2009 14:15 » 

а чем определяется порядок загрузки сервисов?

в юнихваре - по алфавиту
но там были, кажется, sS (т.е. Sтарт/sтоп  демона на входе/выходе в уровень)
« Последнее редактирование: 07-07-2009 14:19 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #4 : 07-07-2009 14:19 » 

Уровнями загрузки. На каждом уровне. Цифиркой, которая стоит в начале линка на скрипт.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
McZim
Модератор

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #5 : 07-07-2009 14:45 » 

Не вы меня не поняли, как работают уровни запуска и как что создавать я имею представления. Прикол в том что если указан уровень запуска по умолчанию 3, то для служб все равно нужно указывать 345 уровни иначе не отработает. Проверено! Вот я и спросил "тайный смысл" работы уровней запуска в RedHat.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Sla
Модератор

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 07-07-2009 14:54 » 

McZim, так на 4-й и 5-ом они киляются (как я понял из Ромыного поста
если ты останешься на третьем уровне, то будет работать
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #7 : 07-07-2009 14:55 » 

Ну на пятом уровне у тебя нет демона, значит его отрубят. Посмотри логи, если например ты записываеш только 3 уровень. То на третьем уровне демон будет запушен. Но потом его на 4 убьют. и пятом соответственно. "345" Ты показываеш, что на этих уровнях демон должен присутствовать в системе.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
McZim
Модератор

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #8 : 07-07-2009 15:02 » 

Как раз таки если просто установить уровень 3, то демон не отрабатывает, если указать уровни 345 то отрабатывает, причем дефолтный уровень 3.
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
McZim
Модератор

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #9 : 07-07-2009 15:12 » 

в общем понятно, просто иногда как-то странно оно себя ведет, возможно со мной что то Улыбаюсь возможно с сервером Улыбаюсь
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 07-07-2009 15:34 » 

McZim, честно слово — ни разу еще не видел сбоя. Проверь содержимое папок после chkconfig.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 07-07-2009 15:37 » new

Макс, ты читал man chkconfig?

Цитата
RUNLEVEL FILES
       Each service which should be manageable by chkconfig needs two or more commented  lines  added  to  its  init.d
       script.
 The  first line tells chkconfig what runlevels the service should be started in by default, as well as
       the start and stop priority levels. If the service should not, by default, be started in  any  runlevels,  a  -
       should be used in place of the runlevels list.  The second line contains a description for the service, and may
       be extended across multiple lines with backslash continuation.

       For example, random.init has these three lines:
       # chkconfig: 2345 20 80
       # description: Saves and restores system entropy pool for \
       #              higher quality random number generation.
       This says that the random script should be started in levels 2, 3, 4, and 5, that its start priority should  be
       20, and that its stop priority should be 80.  You should be able to figure out what the description says; the \
       causes the line to be continued.  The extra space in front of the line is ignored.

Выше я об этом писал. Полезно добавить, хотя и не обязательно.

У меня стоит CentOS 5.3. Тестирую:

Код:
# chkconfig --list mysqld
mysqld          0:выкл  1:выкл  2:выкл  3:выкл  4:выкл  5:выкл  6:выкл
# chkconfig --levels 3 mysqld on
# chkconfig --list mysqld
mysqld          0:выкл  1:выкл  2:выкл  3:вкл   4:выкл  5:выкл  6:выкл

Естественно, запускать chkconfig нужно под root-ом.
« Последнее редактирование: 07-07-2009 15:41 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines