Главная Файлы Форум Галерея Гостевая книга Обратная связь Карта сайта Поиск
 

 

Моё место работы

СитиСервис
  • Заправка и ремонт лазерных картриджей
  • Ремонт любых принтеров и копиров
  • Оригинальные и совместимые картриджи
  • Доставка бесплатно (от 2-х картриджей)
  • Накопительная система расчётов для корпоративных клиентов
Телефон
+7 (4722) 373-983
8-980-326-01-23
Адрес E-mail
mybelpost@gmail.com

Привет, Гость

Войти
Идентификация
Я забыл свой пароль
Регистрация

Разделы -> Статьи -> Debian GNU/Linux -> Автостарт скриптов и...

Скрипты в автозапуске Debian и соответствие LSB

   Эту статью написал скорее для себя, т.к. постоянно забываю, что вбивать
(в служебное поле) в скрипты стартующие вместе с операционкой.
Оригинальное описание есть на wiki.debian.org, но на английском.
   Скрипты размещаемые в /etc/init.d
должны соответствовать LSB (Linux Standard Base - https://wiki.debian.org/LSBInitScripts)
Иначе при попытке включить скрипт в автостарт получим сообщение консоли похожее на это:

........
update-rc.d: warning: /etc/init.d/имя_скрипта missing LSB information
update-rc.d: see <http://wiki.debial.org/LSBinitScripts>
........

Описание полей служебного раздела скриптов размещаемых в /etc/init.d


В скрипте после первой строки

#! /bin/bash

должна идти служебная информация, которая заключена в

### BEGIN INIT INFO

### END INIT INFO

Синтаксис:

# {ключевое_слово}: арг1 [арг2...]

Список ключевых слов:

Provides:
Описывает предоставляемые этим скриптом объекты (арг1, агр2, ...) таким способом, что, когда скрипт запускается с аругментом start, данные объекты считаются существующими, и, следовательно, другие скрипты в init, которые требуют существование этих объектов, смогут запуститься на более поздней стадии. Обычно, можно использовать имя скрипта в качестве объекта, но так же можно использовать имя сервиса, которую он заменяет. Виртуальные объекты тут не указываются. Они определены вне скриптов init.d

Required-Start:
Задаёт объекты, которые должны существовать, чтобы запустить скрипт. Можно использовать при необходимости виртуальные объекты, как описано ниже. Если объекты не указаны, то этот скрипт может быть запущен сразу после старта, не требуя подключенных локальных файловых систем, запущенного системного журнала и т.д.

Required-Stop:
Задаёт объекты, используемые сервисом, предоставляемой скриптом. Объект, предоставляемый этим скриптом должен завершиться до завершения перечисленных здесь объектов, чтобы избежать конфликтов. Обычно, здесь указывают те же объекты, что и в Required-Start

Should-Start:
Задаёт объекты, которые, если существуют, должны быть запущены перед сервисом, предоставляемым данным скриптом. Это допускает слабые зависимости, которые не приводят сервис к ошибке, если объекты не доступны. Можно использовать при необходимости виртуальные объекты, как описано ниже.

Should-Stop:
Задаёт объекты, которые должны быть остановлены уже после данного сервиса. Обычно, здесь указывают те же объекты, что и в Should-Start

Default-Start:
Задаёт уровни запуска, на которых скрипт должен быть запущен (остановлен) по умолчанию. Например, если сервис должен быть запущен только на уровнях 3, 4 и 5, укажите "Default-Start: 3 4 5" и "Default-Stop: 0 1 2 6".

Short-Description:
Задаёт короткое описание действия скрипта. Ограничено одной строкой.

Description:
Задаёт более подробное описание действия скрипта. Может быть в несколько строк, в этом случае, каждая строка описания должна начинаться с символа # с последующим знаком табуляции или как минимум 2-мя символами пробела. Описание заканчивается перед линией, не совпадающим с этим условием.

X-Start-Before, X-Stop-After:
Задаёт обратные зависимости, которые значат то же, как если бы они были указаны в should-start и should-stop в пакетах, указанных тут.

Для отслеживания зависимостей важны ключевые слова

provides

required-...

should-...

Остальные не используются. Уровни запуска по умолчанию используются программой для упорядочивания скриптов (например, insserv) для того, чтобы отслеживать, какой из каталогов rc#.d обновлять, когда служба добавляется в первый раз, и должны отражать назначение сервиса.

Вот некоторые "виртуальные" объекты:

$local_fs
Все локальные фаловые системы подключены. Все скрипты, которые производят запись в /var/ должны зависеть от этого, если они уже не зависят от $remote_fs

$network
низкоуровневая сеть, т.е. сетевые карты, может подразумеваться PCMCIA запущеной

$named
Демоны, которые могут предоставлять разрешение доменных имён предполагаются запущенными. Например, DNS, NIS+ или LDAP

$portmap
Демоны, предоставляющие сервис SunRPC/ONCRPC portmapping как указано в 1833 (если они есть)

$remote_fs
Все файловые системы подключены. Скрипты, которые должны быть запущены во время остановки системы до того, как всем процессам будет отправлен сигнал уничтожения, должны зависеть от $remote_fs.

$syslog
системный журнал функционирует

$time
установленно корректное системное время, например, ntp или rdate, или RTC

$all
Запускает скрипт, по возможности, самым последним


Включение скрипта в автозагрузку


После размещения скрипта в /etc/init.d
его нужно включить в автостарт командой

insserv -v /etc/init.d/имя_скрипта

Удаление скрипта из автозагрузки


insserv -v -r /etc/init.d/имя_скрипта

Пример правильно оформленного скрипта размещаемого в /etc/init.d


#!/bin/bash
### BEGIN INIT INFO
# Provides:  firewall-skv
# Required-Start:$network
# Required-Stop: $network
# Default-Start: S
# Default-Stop:  0 6
# Short-Description: Start firewall at boot time
# Description:   Enable service provided by iptables.
### END INIT INFO

Тело скрипта...



PS: поле Provides не должно совпадать с уже имеющимися сервисами.

Опубликовано: Константин, Автор/источник: wiki.debian.org 12 Октябрь 2013 00:19:19

Комментировать

Вы не залогинены! Регистрация

Афоризмы, мысли

"Помнят и ценят человека не за количество имеющихся у него гаджетов и их цену, а за след оставленный им в этой жизни!"

/Сакрюкин К.В./

Счётчик

Сейчас на сайте - 1 (0 зарег.)
Всего хитов3614 
Сегодня хитов3614 
Сегодня хостов652 

Откуда гости наши?

 
Powered by ReloadCMS 1.5.0.
© 2004-2012 ReloadCMS Team
RSS AggregationPHP powered
Генерация страницы: 0.37
  Яндекс.Метрика
    Сакрюкин К.В.   Яндекс цитирования    
 
Здесь всё можно копировать и цитировать, но рабочая ссылка на мой сайт обязательна!