引入库函数
#!/bin/bash
#引入系统库函数
. /ect/init.d/functions
基本路径定义
#基础路径定义
basedir=’/application/mysql’
bandir=’/application/mysql/bin’
lockdir=’/var/locksubsys’
lock_file_path=‘lockdir/mysql′mysqldpidfilepath=′lockdir/mysql'
mysqld_pid_file_path='lockdir/mysql′mysqldpidfilepath=′basedir/data/uname -d
.pid’
提示函数
#成功提示函数
log_success_msg(){
#action为特殊的提示函数, @为所有参数action"SUCCESS!@为所有参数
action "SUCCESS!@为所有参数action"SUCCESS!@" /bin/true
}
#失败提示函数
log_failure_msg(){
#action为特殊的提示函数, @为所有参数action"FALSE!@为所有参数
action "FALSE!@为所有参数action"FALSE!@" /bin/false
}
启动脚本
#mysql启动函数
start(){
echo $“Starting MySql”
#测试mysqld_safe是否可执行
if test -x $bindir/mysqld_safe
then
#后台执行启动mysql命令
KaTeX parse error: Expected 'EOF', got '&' at position 20: …ir/mysqld_safe &̲>/dev/null &
…?
#善类是否为0
if [ retval−eq0]thenlogsuccessmsg"mysqlStartup"iftest−w"retval -eq 0 ]
then
log_success_msg "mysql Startup"
if test -w "retval−eq0]thenlogsuccessmsg"mysqlStartup"iftest−w"lockdir" #判断目录是否可写
then
touch “$lock_file_path” #创建锁文件
fi
return $retval
else
log_failure_msg “MySql Startuo”
return retvalfielselogfailuremsg"Couldn′tfindMySqlserver(retval
fi
else
log_failure_msg "Couldn't find MySql server(retvalfielselogfailuremsg"Couldn′tfindMySqlserver(basedir/mysqld_safe)"
fi
}
停止脚本
#mysql停止函数
stop(){
#判断mysql pid file大小是否为0
if test -s "$mysqld_pid_file_path"
then
#读取pidfile
mysql_pid=`cat $mysqld_pid_file_path`
#判断mysql 皮带对应的进程是否存在
if (kill -0 $mysql_pid 2>/dev/null)
then
echo $"Shutting down MySql"
kill $mysql_pid #停止命令
retval=$?
if [ $retval -eq 0 ]
then
log_success_msg "MySql Stop"
if test -f "$lock_file_path"
then
rm -f "$lock_file_path" #删除锁文件
fi
return $retval
else
log_failure_msg "MySql Stop"
return retval
fi
else
log_failure_msg "MySql server process mysql_pid is not running!"
rm "$mysqld_pid_file_path" #删除锁文件
fi
else
log_failure_msg "MySql server PID file is null or not exit!"
fi
}
主函数
#接收传参判断并执行相应函数
case "1"instart)startretval=1" in
start)
start
retval=1"instart)startretval=?
…
‘’
stop)
stop
retval=$?
..
''
restart)
stop
sleep 5 #中间等待后台停止任务结束
start
retval=$?
..
''
*)
start
retval=$?
echo $"Usage $0 {start|stop|restart}"
exit 2
esac
exit $retval #执行脚本返回