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