The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Хитрости запуска служб в Linux. (service init linux)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: service, init, linux,  (найти похожие документы)
From: Тёмный <dark705r@mail.ru.> Newsgroups: email Date: Mon, 15 Jan 2007 14:31:37 +0000 (UTC) Subject: Хитрости запуска служб в Linux. Наверное не для кого не секрет что скрипты запускаемых служб в Linux располагаются в /etc/rc.d/init.d или /etc/init.d в зависимости от дистрибутива. Для того чтобы скрипт запускался автоматически во время запуска системы надо создать символическую ссылку на скрипт и разместить её в каталоге /etc/rc.d/rcN.d или /etc/rc.d/rcN.d, где N &#8211; соответствует уровню выполнения скрипта. Уровень 0 остановка системы (halt) - работа системы должна быть прекращена; Уровень 1 однопользовательский режим работы - система инициализирует минимум служб и даёт единственному пользователю (как правило, суперпользователю) без проведения аутентификации командную строку. Как правило, этот режим используется для восстановления системы; Уровень 2 многопользовательский режим - пользователи могут работать на разных терминалах, вход в систему с процессом аутентификации; Уровень 3 многопользовательский сетевой режим - в отличие от предыдущего уровня, осуществляется настройка сети и запускаются различные сетевые службы; Уровень 4 не имеет стандартного толкования и практически не используется; Уровень 5 запуск графической подсистемы - по сравнению с уровнем 3 производится также старт графической подсистемы X11 , и вход в систему осуществляется уже в графическом режиме; Уровень 6 перезагрузка системы - при включении этого режима останавливаются все запущенные программы и производится перезагрузка. Чаще всего во время загрузке система использует уровни загрузки 3 или 5. Однако есть некоторая хитрость в названии самой символической ссылки, о которой многие умалчивают, и которой я хочу рассказать. Например: /etc/rc.d/rc0.d/K60crond и /etc/rc.d/rc3.d/S40crond, указывающие на один скрипт /etc/init.d/crond службы системного журнала. Скрипт, начинающийся с "K" соответствует останову службы, а "S" - запуску. Числа, следующие перед именем службы задают порядок запуска скриптов в директории. Например, скрипт /etc/rc.d/rc3.d/S34syslogd будет запущен до скрипта /etc/rc.d/rc3.d/S40crond, тогда как /etc/rc.d/rc3.d/K60crond до /etc/rc.d/rc3.d/K66syslogd. Можно заметить, что сумма чисел для одной службы равна 100 - это позволяет упорядочить все скрипты в порядке старта, обратном порядку завершения. Создавать самому символические ссылки весьма утомительно, и для этого лучше использовать специальную утилиту chkconfig. Синтаксис её использования весьма прост: chkconfig --list [имя сервиса] chkconfig --add <имя сервиса> chkconfig --del <имя сервиса> chkconfig [--level <уровни>] <имя сервиса> <on|off|reset|resetpriorities> Где имя сервиса - это имя исполняемого скрипта находящегося в /etc/rc.d/init.d Однако и тут есть небольшая хитрость, дело в том что скрипт запуска должен иметь специальный формат, например такой: #!/bin/sh # chkconfig: - 98 02 # description: Описание процесса # processname: Имя процесса # Source function library. if [ -f /etc/init.d/functions ] ; then . /etc/init.d/functions elif [ -f /etc/rc.d/init.d/functions ] ; then . /etc/rc.d/init.d/functions else exit 0 fi KIND="Имя_сервиса" start() { echo -n $"Starting $KIND services: " daemon /usr/local/sbin/исполняемый_файл echo } stop() { echo -n $"Shutting down $KIND services: " killproc исполняемый_файл echo } restart() { echo -n $"Restarting $KIND services: " killproc исполняемый_файл daemon /usr/local/sbin/исполняемый_файл echo } case "$1" in start) start ;; stop) stop ;; restart) restart ;; *) echo $"Usage: $0 {start|stop|restart}" exit 1 esac exit $? Главное тут в следующем, во первых скрипт должен иметь как минимум 3 возможных ключа запуска, это: start, stop, restart, поскольку именно эти основные команды используются для запуска, останова и перезапуска. Плюс ко всему к этому в самом начале файла пишутся те самые заветные цифры отвечающие за последовательность запуска: # chkconfig: - 98 02 Где 98 это номер в последовательности запуска, а 02 это номер последовательности останова. То есть, проще говорят этот скрипт запуститься как 98мым в последовательности очередей, а будет остановлен 2рым. Теперь практикум. Итак для того чтоб добавить скрипт и добавить его в автозагрузку надо произвести следующую последовательность действий: 1. Создать исполняемый скрипт по шаблону приведёному выше, заменив исполняемый_файл именем файла который надо запустить. 2. Разместить исполняемый скрипт в /etc/rc.d/init 3. Выполнить команду chkconfig --add исполняемый_скрипт 4. Выполнить команду setup или servicevonf (в зависимости от того работвете вы в графическом режиме или консоле ) и выбрать службу которая будет носить имя исполняемый_скрипт. Ну вот наверное и всё, если я ни где не ошибся.

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

Обсуждение [ Линейный режим | Показать все | RSS ]
 
  • 1.1, null, 08:17, 16/01/2007 [ответить] [смотреть все]
  • +/
    Это для SysteV стиля запуска ? А для BSD-стиля ? Или для initNG ? Кажись, не подойдёт.
     
     
  • 2.8, Тмный, 01:43, 11/02/2008 [^] [ответить] [смотреть все]
  • +/
    Да именно для  SysteV :) initNG и BSD системы импользуют совсем другой сценарий загрузки
     
  • 1.2, RedStalker_Mike, 11:46, 16/01/2007 [ответить] [смотреть все]
  • +/
    Это вообще преимущественно для систем, которые на редхате основаны так или иначе.
     
  • 1.3, 1, 13:31, 16/01/2007 [ответить] [смотреть все]
  • +/
    а если 99 уже есть а надо еще 2 добавить? тогда как?
     
  • 1.4, 1, 13:32, 16/01/2007 [ответить] [смотреть все]
  • +/
    именно в конец добавить
     
     
  • 2.6, Аноним, 22:18, 16/01/2007 [^] [ответить] [смотреть все]  
  • +/
    99ый номер именуйте в S99abra остальные два за ним в виде S99blabla, S99coolcool... весь текст скрыт [показать]
     
  • 1.5, vass, 17:01, 16/01/2007 [ответить] [смотреть все]  
  • +/
    Опечатка в первом параграфе:
    "/etc/rc.d/rcN.d или  /etc/rc.d/rcN.d"
     
  • 1.7, exZhuk, 15:42, 05/03/2007 [ответить] [смотреть все]  
  • +/
    Vse rabotaet no sluzhba avtomaticheski ne zapuskaetsja, rjadom so statusom stoit * i napisano chto sluzhba razreshena no ne zapushena  и запускается отлично из окна управления службами... где и что поставить что бы она запускалась сама сразу?, может у неё прав нету и поэтому я только рутом её могу запустить?
     
  • 1.9, Buboni, 07:38, 04/09/2009 [ответить] [смотреть все]  
  • +/
    Сделал всё как тут написано выдает СЛЕДУЮЩЕЕ
    bash /atc/rc.d/init.d/restartdЖ /bin/sh:^M плохой итерпретатор: нет такого файла или каталога

    Может подскажете

     
     
  • 2.10, Hyper, 09:46, 11/03/2010 [^] [ответить] [смотреть все]  
  • +/
    Столкнулся с такой же ситуацией. Скрипт писал под виндой в блокноте, затем скопировал в linux, оказалось перед каждым переводом строки стоит еще один символ (скорее всего возврат коретки, но в общем в суть символа не вникал), вот из-за него то и не может распознаться указанный интерпритаор. Удаление лишних символов помогло.
     
  • 2.11, Hate, 10:04, 11/03/2010 [^] [ответить] [смотреть все]  
  • +/
    >Сделал всё как тут написано выдает СЛЕДУЮЩЕЕ
    >bash /atc/rc.d/init.d/restartdЖ /bin/sh:^M плохой итерпретатор: нет такого файла или

      На гуггле забанили? Поискать самому, почитать? Не? Тогда сиди на своем виндогавне и наслаждайся.

      

     
     
  • 3.12, nowhereman, 16:14, 04/01/2012 [^] [ответить] [смотреть все]  
  • +/
    всегда веселили "типа гуру", которые на любой вопрос орут "сиди в своем %%%" и отбивают желание учиться и что-то у них спрашивать. Ну не знал человек, что винда добавляет не один символ, а два (перевод строки-возврат каретки), так что ж его ругать за это, по-человечески нельзя объяснить!
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:



    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList