如何重写启动脚本-创新互联

这篇文章给大家分享的是重写启动脚本的方法,相信大部分人都还没学会这个技能,为了让大家学会,给大家总结了以下内容,话不多说,一起往下看吧。

顺河网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、响应式网站建设等网站项目制作,到程序开发,运营维护。创新互联建站从2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站

!/bin/bash

user=root
port=3306
CmdPath=/opt/mysql/bin
password=xxxxxxxxxx

base_dir=/opt/mysql
inst_dir=/data/3306
alive="00"
sMysqld=0
sMysqldSafe=0
fSock=0
fPID=0

check_alive()
{
echo "running check_alive..."    
if [ ps -ef | grep $port | grep -v grep | grep 'mysqld ' |awk '{print $2}' ];then
echo "Process mysqld is running!"
sMysqld=1
else
echo "Process mysqld is not running!"
sMysqld=0     
fi

  


if [  `ps -ef | grep 3306 | grep -v grep | grep 'mysqld_safe' |awk '{print $2}'` ];then

    echo "Process mysqld_safe is running!"     sMysqldSafe=1 else   echo "Process mysqld_safe is not running!"   sMysqldSafe=0   fi   if [ -e  ${inst_dir}/mysql.sock ];then     echo "socked file exists!"     fSock=1 else   echo "socked file not exists!"   fSock=0   fi   if [ -e  ${inst_dir}/mysql.pid ];then     echo "pid file exists!"     fPID=1 else   echo "pid file  not exists!"   fPID=0   fi   if [ $sMysqld -eq 1 ];then     if [ $fPID -eq 0 ];then       echo "PID is missing, tring to recreate..."       ps -ef | grep $port | grep -v grep | grep 'mysqld ' |awk '{print $2}' > ${inst_dir}/mysql.pid       if [ -e ${inst_dir}/mysql.pid ]; then         echo "pid file is created!"       else         echo "can not create PID file, please have a check!"       fi     fi     if [ $sMysqldSafe -eq 0 ];then       echo "Process mysqld_safe is missing, please have a check! May cause mysqld crash!"     fi     if [ $fSock -eq 1 ];then       echo "MySQL running fine!!!"       alive="11"     else       echo "socket file is missing, you may have to login without socket!"       alive="10"           fi                 else     echo "process mysqld is missing, mysql is stopped!"     if [ $fSock -eq 1 ] | [ $fPID -eq 1 ];then       echo "mysql was stopped abnormality!"       echo "cleaning socket file and pid file"       alive="01"     else       alive="00"   fi

  fi

}

start_mysql()
{   
check_alive 
printf "MySQL is starting ... \n"
if [ $alive == "00" ]; then
${CmdPath}/mysqld_safe --defaults-file=${inst_dir}/my.cnf --user=${user} 2>&1 >/dev/null &
else
if [  $alive == "11" ]; then
echo "MySQL is runnig!"
else
if [ $alive == "01" ]; then
echo "MySQL was stopped but pid or sock file still exits!"
echo "Cleanning pid or sock files!"
if [ $fSock -eq 1 ];then
rm -f ${inst_dir}/mysql.sock
fi
if [ $fPID -eq 1 ];then
rm -f ${inst_dir}/mysql.pid
fi
echo "Tring to start MySQL again!!!"
${CmdPath}/mysqld_safe --defaults-file=${inst_dir}/my.cnf --user=${user} 2>&1 >/dev/null &
fi
fi
fi
}

stop_mysql()
{
check_alive
printf "MySQL is Stopping...\n" 
if [ $alive == "11" ]; then
${CmdPath}/mysqladmin -u root -p${password} -S ${inst_dir}/mysql.sock shutdown 2>&1 >/dev/null &     
else
if [ $alive == "10" ]; then
${CmdPath}/mysqladmin -u root -p${password} -h $HOSTNAME -P $port --protocol tcp shutdown 2>&1 >/dev/null &
else
echo "MySQL is not running, no need stop!" 
fi         
fi
}

restart_mysql()
{
stop_mysql
sleep 5
if [ $? == 0 ];then
start_mysql
else
echo "stop mysql failed!"
fi
}

case $1 in

start)
start_mysql
;;
stop)
stop_mysql     
;;
restart)
restart_mysql
;;
status)
status_mysql
;;
alive)
check_alive
;;
*)
printf "Please in put start|stop|restart|status as input"
;;
esac


}


以上就是重写启动脚本的方法,代码示例简单明了,如果在日常工作遇到此问题。通过这篇文章,希望你能有所收获,更多详情敬请关注创新互联行业资讯频道!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章名称:如何重写启动脚本-创新互联
转载来源:http://azwzsj.com/article/descds.html