* [Comm] Re: init.d cкрипты для apache/samba опускают чужие экземляры @ 2005-12-14 21:17 ` Michael Shigorin 2005-12-14 23:57 ` Dmitry V. Levin 2005-12-20 5:24 ` Dmitry Vodennikov 0 siblings, 2 replies; 5+ messages in thread From: Michael Shigorin @ 2005-12-14 21:17 UTC (permalink / raw) To: ALT Linux Community; +Cc: vserver [-- Attachment #1: Type: text/plain, Size: 1704 bytes --] On Wed, Dec 14, 2005 at 11:19:26PM +0300, Vlad Borisoff wrote: > В случае, если запущены несколько экземпляров apache и/или > samba с разными конфигурационными файлами, /etc/init.d/httpd* > /etc/init.d/smb* скрипты опускают все экземляры (поднимаются > экземляры без проблем). Да. > Проблема с /etc/init.d/httpd связана, как я понял с тем, что > программа start-stop-daemon учитывает не только pidfile, > но и имя процесса: таким образом убивая все процессы с > именем libhttpd.ep (ну и к тому же, ниже вызова функции > stop_daemon libhttpd.ep дополниельно убиваются через killall). Да... источник проблемы, которая *редко* приводит к залипанию одного из детишек на :80 (или где ещё) и как следствие -- морозит перезапуск сервера -- где-то сильно глубоко, судя по обсуждению в апачевых рассылках. Пришлось внедрить такой workaround, до этого он жил в рестарт-скрипте monit у нас. > Существует ли какое-либо простое решение организации > запуска/останова нескольких экземпляров процессов > apache/samba в дистрибутиве ALT Linux? или это считается > абсолютно ненужным и совершенно не стоящим внимания? Возможно, решит в корне не только эту проблему, но и ещё стопку рядомлежащих: apt-get install kernel-image-vs-smp util-vserver $BROWSER http://linux-vserver.org cd /var/lib/vservers lftp ftp://ftp.altlinux.org/pub/people/mike/vserver tar zxpf mv cd /etc/vservers $EDITOR ... service vserver start vserver $NAME enter apt-get install apache ... (в Украине также доступно здесь: ftp://ftp.linux.kiev.ua/pub/Linux/EMT/vserver) -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Comm] Re: init.d cкрипты для apache/samba опускают чужие экземляры 2005-12-14 21:17 ` [Comm] Re: init.d cкрипты для apache/samba опускают чужие экземляры Michael Shigorin @ 2005-12-14 23:57 ` Dmitry V. Levin 2005-12-20 5:24 ` Dmitry Vodennikov 1 sibling, 0 replies; 5+ messages in thread From: Dmitry V. Levin @ 2005-12-14 23:57 UTC (permalink / raw) To: ALT Linux general discussion list [-- Attachment #1: Type: text/plain, Size: 482 bytes --] On Wed, Dec 14, 2005 at 11:17:13PM +0200, Michael Shigorin wrote: > On Wed, Dec 14, 2005 at 11:19:26PM +0300, Vlad Borisoff wrote: [...] > > Существует ли какое-либо простое решение организации > > запуска/останова нескольких экземпляров процессов > > apache/samba в дистрибутиве ALT Linux? или это считается > > абсолютно ненужным и совершенно не стоящим внимания? За apache/samba не скажу (скорее вряд ли), sshd легко запускать подобным образом. -- ldv [-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Comm] Re: init.d cкрипты для apache/samba опускают чужие экземляры 2005-12-14 21:17 ` [Comm] Re: init.d cкрипты для apache/samba опускают чужие экземляры Michael Shigorin 2005-12-14 23:57 ` Dmitry V. Levin @ 2005-12-20 5:24 ` Dmitry Vodennikov 2005-12-20 11:16 ` Michael Shigorin 1 sibling, 1 reply; 5+ messages in thread From: Dmitry Vodennikov @ 2005-12-20 5:24 UTC (permalink / raw) To: shigorin, ALT Linux Community [-- Attachment #1: Type: text/plain, Size: 1965 bytes --] Michael Shigorin пишет: > On Wed, Dec 14, 2005 at 11:19:26PM +0300, Vlad Borisoff wrote: > >>В случае, если запущены несколько экземпляров apache и/или >>samba с разными конфигурационными файлами, /etc/init.d/httpd* >>/etc/init.d/smb* скрипты опускают все экземляры (поднимаются >>экземляры без проблем). > > > Да. > > >>Проблема с /etc/init.d/httpd связана, как я понял с тем, что >>программа start-stop-daemon учитывает не только pidfile, >>но и имя процесса: таким образом убивая все процессы с >>именем libhttpd.ep (ну и к тому же, ниже вызова функции >>stop_daemon libhttpd.ep дополниельно убиваются через killall). > > > Да... источник проблемы, которая *редко* приводит к залипанию > одного из детишек на :80 (или где ещё) и как следствие -- морозит > перезапуск сервера -- где-то сильно глубоко, судя по обсуждению > в апачевых рассылках. > > Пришлось внедрить такой workaround, до этого он жил > в рестарт-скрипте monit у нас. > > >>Существует ли какое-либо простое решение организации >>запуска/останова нескольких экземпляров процессов >>apache/samba в дистрибутиве ALT Linux? или это считается >>абсолютно ненужным и совершенно не стоящим внимания? Что-то начало треда я пропустил... Но судя по контексту решение есть. У меня нормально пускаются/останавливаются несколько отдельных httpd серверов. Вот в аттаче один из скриптов /etc/rc.d/init.d/httpd* Технология такая: 1. делаем ln -s /usr/sbin/httpd /usr/sbin/httpd-whatever 2. добавляем юзера whatever, под которым будет работать сервер 3. скрипт копируется в /etc/rc.d/init.d/httpd-whatever, в нем везде меняем gysmeteo на whatever (везде - это переменные BINARY PIDFILE PERLPIDFILE LOCKFILE CFGFILE STATUSURL) 4. Осталось только создать нужную структуру каталогов для whatever и правильно написать httpd.conf ls ~gysmeteo/* /home/gysmeteo/httpd: conf logs modules /home/gysmeteo/tmp: mc-gysmeteo /home/gysmeteo/www: cgi-bin html icons protected-cgi-bin [-- Attachment #2: httpd-gysmeteo --] [-- Type: text/plain, Size: 3448 bytes --] #! /bin/sh # # httpd Start/Stop the Apache Web Server # # chkconfig: 345 80 15 # description: Apache is a World Wide Web server. It is used to serve \ # HTML files and CGI. # processname: httpd # pidfile: /var/run/httpd.pid # config: /etc/httpd/conf/httpd.conf WITHOUT_RC_COMPAT=1 # Source function library. . /etc/init.d/functions BINARY=/usr/sbin/httpd-gysmeteo PIDFILE=/var/run/httpd-gysmeteo.pid PERLPIDFILE=/var/run/httpd-perl-gysmeteo.pid LOCKFILE=/var/lock/subsys/httpd-gysmeteo RETVAL=0 #vod CFGFILE=/home/gysmeteo/httpd/conf/httpd.conf export TMPDIR=/tmp ### Hack for bad hostname configuration #vod thehost=`hostname` #vod hostname -i 1>/dev/null 2>/dev/null|| hostname localhost ### Hack for Status LYNX="lynx -dump" STATUSURL="http://www.gysmeteo.ru/server-status" # Change the major functions into functions. moduleargs() { moduledir=/usr/lib/apache moduleargs= for module in ${moduledir}/*.so ; do if [ -x ${module} ] ; then module=`echo ${module} | sed -e 's/.*\///g; s/^mod_//g; s/^lib//g; s/\.so//g;'| tr '[:lower:]' '[:upper:]'` moduleargs="${moduleargs} -DHAVE_$module" fi done echo ${moduleargs} } conftest() { # TODO: translatable form? action "Checking configuration sanity for `basename $BINARY`: " \ "$BINARY" -t `moduleargs` $DEFINE -f "$CFGFILE" RETVAL=$? return $RETVAL } start() { if [ "$1" != "again" ]; then if status --pidfile "$PERLPIDFILE" --expect-user root \ --expect-user root -- httpd-perl >&/dev/null; then echo "Warning: httpd-perl is already running, check 'service `basename $BINARY` status' now" passed "httpd-perl already running" fi fi start_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" \ --expect-user root --name libhttpd.ep -- $BINARY -f "$CFGFILE" RETVAL=$? return $RETVAL } stop() { stop_daemon --pidfile "$PIDFILE" --lockfile "$LOCKFILE" \ --expect-user root --name libhttpd.ep -- $BINARY if [ "$1" != "nocheck" -a -f "$PERLPIDFILE" ]; then echo "Warning: httpd-perl is running, check 'service httpd-perl extendedstatus'" passed "httpd-perl already running" fi RETVAL=$? return $RETVAL } reload() { msg_reloading `basename $BINARY` stop_daemon --pidfile "$PIDFILE" \ --expect-user root --name libhttpd.ep -HUP -- $BINARY RETVAL=$? return $RETVAL } restart() { stop nocheck conftest || _exit $? start again } briefstatus() { status --pidfile "$PIDFILE" --expect-user root \ --expect-user root --name libhttpd.ep -- $BINARY RETVAL=$? return $RETVAL } extendedstatus() { if briefstatus >/dev/null; then RETVAL=$? $LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } ' else RETVAL=$? msg_not_running "`basename $BINARY`" echo fi return $RETVAL } _exit() { hostname $thehost exit $1 } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) restart ;; reload|graceful) if [ -e /usr/lib/apache/mod_jserv.so ]; then restart else reload fi ;; check|configtest) conftest _exit $? ;; condstop) if [ -e "$LOCKFILE" ]; then stop fi ;; update|condrestart) if [ -e "$LOCKFILE" ]; then restart fi ;; condreload) if [ -e "$LOCKFILE" ]; then reload fi ;; extendedstatus) extendedstatus ;; status) briefstatus ;; *) msg_usage "${0##*/} {start|stop|reload|restart|check|configtest|condstop|condrestart|condreload|status}" RETVAL=1 esac _exit $RETVAL ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Comm] Re: init.d cкрипты для apache/samba опускают чужие экземляры 2005-12-20 5:24 ` Dmitry Vodennikov @ 2005-12-20 11:16 ` Michael Shigorin 2005-12-21 5:23 ` Dmitry Vodennikov 0 siblings, 1 reply; 5+ messages in thread From: Michael Shigorin @ 2005-12-20 11:16 UTC (permalink / raw) To: ALT Linux Community On Mon, Dec 19, 2005 at 09:24:39PM -0800, Dmitry Vodennikov wrote: > >>Существует ли какое-либо простое решение организации > >>запуска/останова нескольких экземпляров процессов > >>apache/samba в дистрибутиве ALT Linux? > Что-то начало треда я пропустил... Но судя по контексту решение > есть. У меня нормально пускаются/останавливаются несколько > отдельных httpd серверов. Вот в аттаче один из скриптов > /etc/rc.d/init.d/httpd* > Технология такая: Дмитрий, а не хотите свернуть пример в пакетик (apache-instance, например), а то и обобщить? В голову пришло нечто вроде обёртки, которая смотрит на своё имя и забирает что надо (если вообще надо) из соответствующей конфигурации в /etc/sysconfig, ну и на каковой /etc/init.d/httpd-wrapper можно поставить рядом ссылок с нужными именами и chkconfig'ать уже их. Проблема в том, что при некотором спросе (раз в год-два) на подобные варианты мне оно не требовалось ни разу, особенно со времени появления ALM2.4 с vs-smp. Также пересылаю в devel@. -- ---- WBR, Michael Shigorin <mike@altlinux.ru> ------ Linux.Kiev http://www.linux.kiev.ua/ ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Comm] Re: init.d cкрипты для apache/samba опускают чужие экземляры 2005-12-20 11:16 ` Michael Shigorin @ 2005-12-21 5:23 ` Dmitry Vodennikov 0 siblings, 0 replies; 5+ messages in thread From: Dmitry Vodennikov @ 2005-12-21 5:23 UTC (permalink / raw) To: shigorin, ALT Linux Community Michael Shigorin пишет: > On Mon, Dec 19, 2005 at 09:24:39PM -0800, Dmitry Vodennikov wrote: > >>>>Существует ли какое-либо простое решение организации >>>>запуска/останова нескольких экземпляров процессов >>>>apache/samba в дистрибутиве ALT Linux? >> >>Что-то начало треда я пропустил... Но судя по контексту решение >>есть. У меня нормально пускаются/останавливаются несколько >>отдельных httpd серверов. Вот в аттаче один из скриптов >>/etc/rc.d/init.d/httpd* >>Технология такая: > > > Дмитрий, а не хотите свернуть пример в пакетик (apache-instance, > например), а то и обобщить? > Эх... Не чуствую я пока в себе сил на полноценную поддержку пакета.... Но в todo поставлю... ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2005-12-21 5:23 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2005-12-14 21:17 ` [Comm] Re: init.d cкрипты для apache/samba опускают чужие экземляры Michael Shigorin 2005-12-14 23:57 ` Dmitry V. Levin 2005-12-20 5:24 ` Dmitry Vodennikov 2005-12-20 11:16 ` Michael Shigorin 2005-12-21 5:23 ` Dmitry Vodennikov
ALT Linux Community general discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/community/0 community/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 community community/ http://lore.altlinux.org/community \ mandrake-russian@linuxteam.iplabs.ru community@lists.altlinux.org community@lists.altlinux.ru community@lists.altlinux.com public-inbox-index community Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.community AGPL code for this site: git clone https://public-inbox.org/public-inbox.git