[devel] I: service-0.0.3: introduction to new start/stop service scheme

Dmitry V. Levin ldv на altlinux.org
Сб Апр 26 01:41:51 MSD 2003


Greetings!

С пакета service-0.0.3 начинается внедрение новой схемы
start/stop-скриптов.

1. Недостатки прежней схемы.
Ныне действующая практика, унаследованная от RedHat, и используемая
почти во всех RH-совместимых дистрибутивах, основана на поиске процессов
по имени, что чревато проблемами, некоторые их которых перечислены ниже:
- При запуске демона осуществляется поиск уже запущенных процессов, при
  этом есть шанс ошибочного нахождения процесса, обслуживающего клиента,
  что препятствует запуску демона.
- При остановке демона и отсутствии pid-файла осуществляется поиск уже
  запущенных процессов, при этом есть шанс ошибочного нахождения процесса,
  обслуживающего клиента, что приводит к остановке процессов, которые не
  подлежат остановке.
- Вообще, при поиске процессов по неполному имени есть шанс ошибочного
  нахождения процесса, не имеющего отношения к искомому, как случайно, так
  и вследствие атаки, организованной локальным злоумышленником.

Вот пара примеров из реальной жизни:
- Попытка перезапуска sshd.
  ssh localhost
  su -
  service sshd restart (ой!)
  service sshd restart (ой-ой-ой!)
- Попытка перезапуска crond.
  echo '* * * * * nobody /usr/bin/pause' >/etc/cron.d/pause
  chmod 700 /etc/cron.d/pause
  (через одну-две минуты будет запущен процесс /usr/bin/pause)
  service сrond restart (ой!)

2. Новая схема призвана устранить эти недостатки.
За основу взята реализация из Owl, основанная на Debian-derived
start-stop-daemon.  При использовании pid-файлов совместно с абсолютными
путями к исполняемым файлам процессов удаётся избежать проблем,
перечисленных выше.

Текущая реализация (0.0.3), как видно по номеру, не является
окончательной.  Документация типа той, что есть к прежней схеме
(/usr/share/doc/initscripts-*/sysvinitfiles), ещё не написана.

В Сизифе уже есть (пока) один пример использования, /etc/init.d/crond из
пакета vixie-cron-3.0.1-ipl57mdk, можно сравнить файлом из предыдущей
версии.

Пожелания и сообщения об ошибках приветствуются.


--
ldv
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: отсутствует
Url     : http://lists.altlinux.org/pipermail/devel/attachments/20030426/735b7818/attachment.bin 


Подробная информация о списке рассылки Devel