每一个合格的Linux运维人员都应该做到熟练或精通Shell脚本编程,因为Shell脚本语言差不多是所有编程语言里最简单的语言,如果Shell脚本不行,意味着运维之路可能还没开始就将要终结。——老男孩老师

#!/bin/bash# chkconfig: 2345 64 36 #配置系统自启动# description: A very fast and reliable SQL database engine.############################################################### File Name: mysqld# Version: V1.0# Author: oldboy# Organization: www.oldboyedu.com# Created Time : 2018-06-05 08:58:19###############################################################引入系统函数库. /etc/init.d/functions#基础路径定义basedir='/application/mysql'bindir='/application/mysql/bin'lockdir='/var/lock/subsys'                    lock_file_path="$lockdir/mysql"mysqld_pid_file_path='$basedir/data/`uname -n`.pid'#成功提示函数log_success_msg(){  #action为特殊的提示函数,$@为所有参数。  action "SUCCESS! $@" /bin/true}#失败提示函数log_failure_msg(){  action "ERROR! $@" /bin/false } #mysql启动函数start(){  echo $"Starting MySQL"  #测试mysqld_safe是否可执行  if test -x $bindir/mysqld_safe  then    #后台执行启动mysql命令    $bindir/mysqld_safe &>/dev/null &    #获取返回值    retval=$?    #判断返回值是否为0    if [ $retval -eq 0 ]    then      #调用成功提示函数。      log_success_msg "mysql Startup"      if test -w "$lockdir" #判断锁目录是否可写。      then        touch "$lock_file_path" #创建锁文件。      fi      return $retval #给返回值是专业的表现。    else      log_failure_msg "MySQL Startup" #调用失败函数提示。      return $retval    fi  else    log_failure_msg "Couldn't find MySQL server ($bindir/mysqld_safe)"  fi}#停止MySQL函数。stop(){  #判断mysql pid file大小是否为0。  if test -s "$mysqld_pid_file_path"  then    #读取pidfile    mysqld_pid=`cat "$mysqld_pid_file_path"`    #判断mysql pid对应的进程是否存在。    if (kill -0 $mysqld_pid 2>/dev/null)    then      echo $"Shutting down MySQL"      kill $mysqld_pid #停止MySQL命令。      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 mysqld_pid is not running!"      rm "$mysqld_pid_file_path"    fi   else    log_failure_msg "MySQL server PID file is null or not exist!"  fi}#接收传参判断并执行相应函数。case "$1" in  start)    start    retval=$?    ;;  stop)    stop    retval=$?    ;;  restart)    stop    sleep 2 #这里很重要,要休息一下。    start    retval=$?    ;;  *)    echo $"Usage:$0 {start|stop|restart}"    exit 2esacexit $retval  #执行脚本后,有返回值才更专业。

更多相关文章

  1. 基于MQTT实现Android消息推送(Push)
  2. android ndk编译x264开源(用于android的ffmpeg中进行软编码)
  3. Android(安卓)ROM的创建和烧录
  4. Android(安卓)ASE 脚本环境
  5. Android实现圆角弹框功能
  6. android实现静默安装demo
  7. android WebView解析 调用html5页面
  8. Android(安卓)SDK源码提取Python脚本(4.0SDK源码下载地址)
  9. Android事件分发机制完全解析,带你从源码的角度彻底理解(上)

随机推荐

  1. php 无限级分类 递归+sort排序 和 非递归
  2. 如何捕获错误,如无法打开流和连接超时
  3. AJAX调用在JavaScript中运行PHP脚本
  4. 自动同步vps服务器或本地文件的数据到百
  5. php如何判断数组["a","b","c"]中是否含有
  6. wamp如何添加多个站点
  7. PHP 括号配对判断及修正
  8. 一个好用的PHP验证码类
  9. 用于上传多个文件的PHP代码
  10. 使用AJAX值的Fileupload不会以其他字段的