login.conf

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

login.conf

Anton Maksimenkov
Здраствуйте, openbsd.

 Может кто просветит по теме участия login-классов в загрузке системы?
Начну с того, что из /etc/rc.local запускается куча сервисов и всяких
прог. В том числе там и апачи (несколько, один из них в chroot, другие
нет), и прога-демон, которая перезапускает апач (делает "kill -TERM
`cat /var/www/logs/httpd.pid` && httpd -f .../httpd.conf").
Прогу-демона "пинает" CGI-скрипт (потому как сам CGI не сможет апача
остановить и запустить, умрёт вместе с ним).

 Так вот, если от рута сделать себе лимит процессов под 8192 и
запустить всех апачей и демона-перезапускателя, то все работает.
Кстати, в рабочем режиме если сделать ps auxw|grep httpd|wc -l то
будет 500-800 процессов.
 
 А из rc.local всё это дело "не совсем" стартует: не-чрутовые не могут
выполнять CGI, ругаются "can't spawn process"; чрутовый апач пишет,
что ему не удается fork(). Если его убить и запустить вручную, то при
процедуре "CGI->демон-перезапускатель" этот демон-перезапускатель
убивает и стартует чрутового апача (то есть как бы "от себя"
запускает), а апач потом снова ругается, что не удается fork().
 Опять же, если убить и сам демон-перезапускатель и запустить его от
рута, где лимит процессов под 8192 то дальше все работает,
fork()'ается и т.д.

 Cделал в /etc/sysctl.conf
kern.maxfiles=16384
kern.maxproc=8192

 и в /etc/login.conf изменил для daemon:
daemon:\
        ...
        :openfiles=8192:\
        ...
и сделал класс
#
# Apache WEB server
#
www:\
        :datasize=1024M:\
        :openfiles=8192:\
        :maxproc=4096:\
        :tc=default:

и юзеру www назначил этот класс. Хотя эксперименты показывают, что
ограничения логин-класса действуют для ЮЗЕРА КОТОРЫЙ ЗАПУСКАЕТ апача
(если я правильно понимаю приведенные выше траблы).

 У рута логин-класс daemon, значит теперь лимит 8192 файла. По идее от
рута /etc/rc.local выполняется, и вроде должно работать. Но не хочет.
Чрутовый апач запускается, но после цикла "CGI->демон-перезапускатель"
опять не форкается. Не-чрутовые не могут выполнять CGI, ругаются
"can't spawn process"...

 Вобщем совершенно запарилсяся, как эту индейскую сволочь запускать.
Выправлять всё руками после ребута как-то идиотично выглядит.

 Уже думаю послать что ли этот апач в жопу и попробовать lighttpd...
--
engineer