From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <003c01c4fb13$24232550$6910a8c0@homepc1> From: "elecom" To: References: <205851475.20050104232712@softsearch.ru><20050104232915.5949a5c5@nikon.office.e-nk.ru><1253293808.20050104234039@softsearch.ru><20050104234311.333fb579@nikon.office.e-nk.ru><462740480.20050104235038@softsearch.ru><20050104235803.494ef241.kirienko@mccme.ru> <717839936.20050114005144@softsearch.ru> Subject: =?koi8-r?B?UmU6IFJlWzRdOiBbQ29tbV0g6cTFwczYztnKINPL0snQ1CDQxdLF2g==?= =?koi8-r?B?wdDV08vBIG15c3FsZA==?= Date: Sat, 15 Jan 2005 20:01:48 +0500 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_0039_01C4FB3D.0BB9CF80" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 X-BeenThere: community@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: community@altlinux.ru List-Id: Mailing list for ALT Linux users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 15 Jan 2005 15:00:32 -0000 Archived-At: List-Archive: List-Post: This is a multi-part message in MIME format. ------=_NextPart_000_0039_01C4FB3D.0BB9CF80 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit ----- Original Message ----- From: "Михаил Монашёв" To: "Denis Kirienko" Sent: Friday, January 14, 2005 2:51 AM Subject: Re[4]: [Comm] Идеальный скрипт перезапуска mysqld > Здравствуйте Денис > > >> Мне нужен простой sh скриптик с параметрами start|stop|restart > > DK> Вы шутите? > DK> /etc/init.d/mysql start|stop|restart > > Всё дело в том, что одновременно запущено несколько mysql и хотелось > бы обращаться к ним например вот так: > mysql5 restart > > а не писать кучу параметров: пароль, юзера, сокет, ссылку на конфиг и т.д. Тогда все-таки стоит потрудиться и написать /etc/init.d/mysqld1 /etc/init.d/musqld2 , как вам уже посоветовали. Я делал такой вариант для httpd, radiusd, и он нормально работает. Методика в общем проста: Необходимо следующее: 1. непосредственно для разных экземпляров сервиса, безотносительно к скриптам его запуска, обеспечить различные конфигурационные файлы, рабочие каталоги, лог-файлы, pid файлы. 2. сделать по одному экземпляру скрипта в /etc/init.d для каждого экземпляра сервиса. 3. обеспечить соответствие пересекающихся по смыслу параметров (например, pid-файлы) в скриптах запуска и конфигурационных файлах серевера. Основная работа состоит в модификации скриптов запуска так, чтобы команды start, stop и т.д. посыла- лись нужному экземпляру сервиса, и сервис запускался с нужным конфигурационным файлом. Для httpd это делается так: 1. создаем линк на http, имеющий другое имя, например: ln -s /usr/sbin/httpd /usr/sbin/httpd-test (кто-то в этом треде упоминал про проблему killall в скрипте, так линк как раз для этого) 2. прикладываем патч (см. аттач), который модифицирует скрипт запуска, добавляя возможность иметь разные конфиги и делать start/stop отдельным экземплярам 3. тиражируем скрипт n раз. У меня например /etc/init.d/httpd и /etc/init.d/httpd-test различаются только этим < BINARY=/usr/sbin/httpd < PIDFILE=/var/run/httpd.pid < PERLPIDFILE=/var/run/httpd-perl.pid < LOCKFILE=/var/lock/subsys/httpd --- > BINARY=/usr/sbin/httpd-test > PIDFILE=/var/run/httpd-test.pid > PERLPIDFILE=/var/run/httpd-perl-test.pid > LOCKFILE=/var/lock/subsys/httpd-test 23c23 < CFGFILE=/etc/httpd/conf/httpd.conf --- > CFGFILE=/home/test/httpd/conf/httpd.conf 33c33 < STATUSURL="http://localhost/server-status" --- > STATUSURL="http://www.test.ru/server-status" Правда, в вашем случае дело осложняется тем, что mysqld пускается через safe-mysqld, но это тоже решаемая проблема ------=_NextPart_000_0039_01C4FB3D.0BB9CF80 Content-Type: application/octet-stream; name="httpd.diff" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="httpd.diff" 21a22,23=0A= > #vod=0A= > CFGFILE=3D/etc/httpd/conf/httpd.conf=0A= 26,27c28,29=0A= < thehost=3D`hostname`=0A= < hostname -i 1>/dev/null 2>/dev/null|| hostname localhost=0A= ---=0A= > #vod thehost=3D`hostname`=0A= > #vod hostname -i 1>/dev/null 2>/dev/null|| hostname localhost=0A= 50,51c52,53=0A= < action "Checking configuration sanity for httpd: " \=0A= < "$BINARY" -t `moduleargs` $DEFINE=0A= ---=0A= > action "Checking configuration sanity for `basename $BINARY`: " \=0A= > "$BINARY" -t `moduleargs` $DEFINE -f "$CFGFILE"=0A= 61c63=0A= < echo "Warning: httpd-perl is already running, check 'service httpd = status' now"=0A= ---=0A= > echo "Warning: httpd-perl is already running, check 'service = `basename $BINARY` status' now"=0A= 66c68=0A= < --expect-user root --name libhttpd.ep -- httpd=0A= ---=0A= > --expect-user root --name libhttpd.ep -- $BINARY -f "$CFGFILE"=0A= 74c76=0A= < --expect-user root --name libhttpd.ep -- httpd=0A= ---=0A= > --expect-user root --name libhttpd.ep -- $BINARY=0A= 85c87=0A= < msg_reloading httpd=0A= ---=0A= > msg_reloading `basename $BINARY`=0A= 87c89=0A= < --expect-user root --name libhttpd.ep -HUP -- httpd=0A= ---=0A= > --expect-user root --name libhttpd.ep -HUP -- $BINARY=0A= 102c104=0A= < --expect-user root --name libhttpd.ep -- httpd=0A= ---=0A= > --expect-user root --name libhttpd.ep -- $BINARY=0A= 114c116=0A= < msg_not_running "httpd"=0A= ---=0A= > msg_not_running "`basename $BINARY`"=0A= ------=_NextPart_000_0039_01C4FB3D.0BB9CF80--