From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 20 Dec 2005 13:17:38 +0200 From: Michael Shigorin To: devel@lists.altlinux.org Message-ID: <20051220111738.GI27103@osdn.org.ua> Mail-Followup-To: devel@lists.altlinux.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="3O1VwFp74L81IIeR" Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.4.2.1i Subject: [devel] Fwd: Re: [Comm] Re: init.d =?koi8-r?b?Y8vSydDU2SDEzNEgYXBhY2hl?= =?koi8-r?b?L3NhbWJhIM/Q1dPLwcDUIN7V1snFINzL2sXNzNHS2Q==?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Devel discussion list List-Id: ALT Devel discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Dec 2005 11:18:31 -0000 Archived-At: List-Archive: List-Post: --3O1VwFp74L81IIeR Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit Здравствуйте. Тут кой-чего запостили, решил, что стоит более разработческого внимания. http://lists.altlinux.ru/pipermail/community/2005-December/171914.html http://lists.altlinux.ru/pipermail/community/2005-December/171954.html -- ---- WBR, Michael Shigorin ------ Linux.Kiev http://www.linux.kiev.ua/ --3O1VwFp74L81IIeR Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 8bit Return-Path: X-Original-To: mike@fly.osdn.org.ua Delivered-To: mike@fly.osdn.org.ua Received: from kurush.osdn.org.ua (external.osdn.org.ua [212.40.34.156]) by fly.osdn.org.ua (Postfix) with ESMTP id 0899C1C98206 for ; Tue, 20 Dec 2005 07:26:05 +0200 (EET) Received: from lists.altlinux.org (lists.altlinux.org [62.118.250.236]) by kurush.osdn.org.ua (8.12.11/8.12.11) with ESMTP id jBK5PrRk049894 for ; Tue, 20 Dec 2005 07:26:04 +0200 (EET) (envelope-from community-bounces@lists.altlinux.org) Received: from lists.altlinux.org (localhost.localdomain [127.0.0.236]) by lists.altlinux.org (Postfix) with ESMTP id 572B9595F0D0; Tue, 20 Dec 2005 08:25:36 +0300 (MSK) X-Original-To: community@lists.altlinux.org Delivered-To: community@lists.altlinux.org Received: from es.elecom.ru (elecom.ru [195.161.200.1]) by lists.altlinux.org (Postfix) with ESMTP id 8F92C589CF42 for ; Tue, 20 Dec 2005 08:24:57 +0300 (MSK) Received: (qmail 15356 invoked from network); 20 Dec 2005 05:24:43 -0000 Received: by simscan 1.1.0 ppid: 15352, pid: 15353, t: 0.8910s scanners: clamav: 0.87.1/m:34/d:1162 Received: from unknown (HELO ?195.161.195.1?) (195.161.195.1) by 0 with AES256-SHA encrypted SMTP; 20 Dec 2005 05:24:42 -0000 Message-ID: <43A79597.8000303@elecom.ru> Date: Mon, 19 Dec 2005 21:24:39 -0800 From: Dmitry Vodennikov User-Agent: Mozilla Thunderbird 1.0.7 (Windows/20050923) X-Accept-Language: ru-ru, ru MIME-Version: 1.0 To: shigorin@gmail.com, ALT Linux Community Subject: Re: [Comm] Re: init.d =?KOI8-R?Q?c=CB=D2=C9=D0=D4=D9_=C4=CC=D1?= =?KOI8-R?Q?_apache/samba_=CF=D0=D5=D3=CB=C1=C0=D4_=DE=D5=D6=C9=C5_?= =?KOI8-R?Q?=DC=CB=DA=C5=CD=CC=D1=D2=D9?= References: <133457338.20051214231926@cyberdude.ru> <20051214211713.GC2918@osdn.org.ua> In-Reply-To: <20051214211713.GC2918@osdn.org.ua> Content-Type: multipart/mixed; boundary="------------060702000605030407070302" Cc: X-BeenThere: community@lists.altlinux.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Linux Community List-Id: ALT Linux Community List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: community-bounces@lists.altlinux.org Errors-To: community-bounces@lists.altlinux.org X-Spam: no; 0.00; пишет:01 26PM:01 Vlad:01 wrote:01 запущены:01 httpd:01 smb:01 поднимаются:01 понял:01 pidfile:01 убивая:01 libhttpd:01 убиваются:01 killall:01 детишек:01 X-Attachments: cset="KOI8-R" name="httpd-gysmeteo" name="httpd-gysmeteo" cset="koi8-r" This is a multi-part message in MIME format. --------------060702000605030407070302 Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit 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 --------------060702000605030407070302 Content-Type: text/plain; name="httpd-gysmeteo" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="httpd-gysmeteo" #! /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 --------------060702000605030407070302 Content-Type: text/plain; charset="koi8-r" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQ29tbXVuaXR5 IG1haWxpbmcgbGlzdApDb21tdW5pdHlAbGlzdHMuYWx0bGludXgub3JnCmh0dHBzOi8vbGlzdHMu YWx0bGludXgub3JnL21haWxtYW4vbGlzdGluZm8vY29tbXVuaXR5 --------------060702000605030407070302-- --3O1VwFp74L81IIeR--