From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Sat, 26 Apr 2003 01:41:51 +0400 From: "Dmitry V. Levin" To: ALT Devel discussion list Message-ID: <20030425214151.GA29795@nomad.office.altlinux.org> Mail-Followup-To: ALT Devel discussion list Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="EVF5PPMfhYS0aIcm" Content-Disposition: inline X-fingerprint: 9658 398D 181B 1200 8FC5 26B8 F6F8 846B C1E2 3429 Subject: [devel] I: service-0.0.3: introduction to new start/stop service scheme Sender: devel-admin@altlinux.ru Errors-To: devel-admin@altlinux.ru X-BeenThere: devel@altlinux.ru X-Mailman-Version: 2.0.9 Precedence: bulk Reply-To: devel@altlinux.ru List-Unsubscribe: , List-Id: List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: List-Post: --EVF5PPMfhYS0aIcm Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit 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 --EVF5PPMfhYS0aIcm Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (GNU/Linux) iD8DBQE+qauf9viEa8HiNCkRAmzvAJ97mev1YXRIsnU/YuOhK601xWFTmgCfUvuK qgfVx1PyvrQaXE81oJBPPuw= =OuSU -----END PGP SIGNATURE----- --EVF5PPMfhYS0aIcm--