tech-pkg: mysqld rc.d script

Subject: mysqld rc.d script
To: NetBSD Packages <tech-pkg@netbsd.org>
From: Xavier HUMBERT <xavier@xavhome.fr.eu.org>
List: tech-pkg
Date: 02/10/2002 11:41:20
I tried to use th "mysql.server" which is installed in
/usr/pkg/share/mysql
It is pure RedHatism, God bless me !
The main problem is that the database is launched by the wrapper
safe_mysqld. And that, iirc, a clean shutdown is not issued to the
database, when shutting down the system.
So I wrote a NetBSD style rc script :
Thanks for the comments.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=--==-=
If you dont'have a mysql user, you're required to create one :
---> /etc/group:
mysql:*:99:
---> /etc/master.passwd:
mysql:*:99:99::0:0:& Group:/var/mysql:/sbin/nologin
---> In rc.conf
mysqld=YES mysqld_flags="--user=mysql"
Note that you *must* use a custom start command, since for obscure
reason safe_mysqld needs to be launched explicitely in background.
---> In rc.d/mysqld
#!/bin/sh
#
# $NetBSD: mysql,v 1.0 2002年02月10日 01:44:37 xavier Exp $
#
# PROVIDE: mysqld
# REQUIRE: DAEMON LOGIN mountall
# KEYWORD: shutdown
. /etc/rc.subr
name="mysqld"
rcvar=$name
command="/usr/pkg/bin/safe_mysqld"
pidfile="/var/mysql/`hostname`.pid"
start_cmd="mysqld_start"
restart_cmd="mysqld_restart"
stop_cmd="mysqld_stop"
status_cmd="mysqld_status"
required_files="/var/mysql/mysql/host.frm"
mysqld_status()
{
 check_pidfile $pidfile $name
 if [ -n "$_pid" ]; then
 echo "${name} is running as pid $_pid."
 else
 echo "${name} is not running."
 return 1
 fi
}
mysqld_start()
{
 echo "Starting mysqld"
 ${command} ${mysqld_flags} &
}
mysqld_restart()
{
 check_pidfile $pidfile $name
 mysqld_stop
 echo "Waiting for shutdown to complete"
 wait_for_pids $_pid
 mysqld_start
}
mysqld_stop()
{
 echo "Shutting down mysqld"
 check_pidfile $pidfile $name
 if [ -n "$_pid" ]; then
 kill -SIGTERM $_pid
 fi
}
load_rc_config $name
run_rc_command "1ドル"
-- 
Xav
http://www.freetibet.org
http://www.tibet.fr/

AltStyle によって変換されたページ (->オリジナル) /