一、写一个start_nginx脚本,当启动、停止、重启时利用系统函数模拟实现系统脚本启动的特殊颜色效果 (用if实现)

#!/bin/sh
. /etc/init.d/functions
if [ $# -ne 1 ]
  then
   echo "USAGE $0 {start|stop|restart}"
   exit 1
fi
if [ "$1" == "start" ]
  then
    action "start nginx" /bin/true
elif [ "$1" == "stop" ]
  then
     action "stop nginx" /bin/true
elif [ "$1" == "restart" ]
  then
     action "restart nginx" /bin/true
else
    echo "USAGE $0 {start|stop|restart}"
    exit 1
fi

结果测试:

二、什么是函数

简单的说,就是把程序里多次调用的部分定义成一份,然后起个名字,对于所有的调用,用这个名字就可以了。

优势:减少程序代码量;增加程序的可读、易读性;实现程序功能的模块化

三、用 if 和函数 实现  mysql的启动脚本

单实例:

1.启动服务: /application/mysql/bin/mysqld_safe &

2.停止服务: /application/mysql/bin/mysqladmin -uroot -poldboy124   shutdown

3.开发脚本代码:

#!/bin/sh
. /etc/init.d/functions
path="/application/mysql/bin"
user=root
pass=oldboy124
function usage(){
  echo "$0 (start|stop|restart)"
  exit 1
}
[ $# -ne 1 ] && usage
function start_mysql(){
 
  cd /application/mysql && $path/mysqld_safe  >/dev/null 2>&1 &
  if [ $? -eq 0 ]
   then
    action "start mysql " /bin/true
  else
    action "start mysql" /bin/false
  fi
}
function stop_mysql(){
  $path/mysqladmin -u$user -p$pass   shutdown >/dev/null 2>&1
  if [ $? -eq 0 ]
    then
     action "stop mysql" /bin/true
  else
     action "stop mysql" /bin/false
  fi
 
}
if [ "$1" == "start" ]
  then
    start_mysql
elif [ "$1" == "stop" ]
  then
    stop_mysql
elif  [ "$1" == "restart"  ]
   then
     stop_mysql
     start_mysql
else
   usage
fi

测试:

四、如何将一个脚本设置成开机自启动

例如:将上述脚本设置成开机自启动

首先,chkconfig命令可以设置开机自启动,但是启动命令必须在/etc/init.d里面,因为开机自启动会首先加载这里面的服务,当我们启动一个运行级别下的服务的时候,会通过chkconfig进行服务的管理,系统根据管理进行服务的优先级启动,所有如下草图:

1)在脚本中加入启动和关闭的优先顺序:如下图中的

2)将脚本交给chkconfig管理器

    chkconfig --add mysqld

  3)进行服务的开启:

chkconfig  mysqld on

六、Shell脚本高级编程实战第六部的更多相关文章

  1. 四、Shell脚本高级编程实战第四部

    一.比较两个数的大小 #!/bin/shread -p "Pls input two num:" a b[ -z "$a" ] || [ -z "$b ...

  2. 七、Shell脚本高级编程实战第七部

    一.写网络服务的系统启动脚本 利用case语句开发类似系统启动rsync服务的脚本 代码: #!/bin/sah. /etc/init.d/functionspidfile="/var/ru ...

  3. 八、Shell脚本高级编程实战第八部

    一.使用for循环在/oldboy目录下创建10个文件名为oldboy-x的文件 #!/bin/sh[ ! -d /oldboy ] && mkdir -p /oldbfor i in ...

  4. 一、Shell脚本高级编程实战第一部

    Shell脚本语言是实现linux系统自动化管理的重要且必要的工具,几乎每一个合格的linux系统管理员或者高级运维工程师都要熟练shell脚本语言的编写,只有这样才能提升工作效率,解决工作中的重复劳 ...

  5. 三、Shell脚本高级编程实战第三部

    保养好自己的发动机:身体的和心里的身体健康:打打球,跑跑步心里健康:多和大家接触,保持家人.朋友的良好关系一.$*和$@的区别   $*:获取shell的所有参数,将所有的参数视为单个字符串.   $ ...

  6. 二、Shell脚本高级编程实战第二部

    一.什么是变量? 变量就是一个固定的字符串替代更多更复杂的内容,当然内容里面可能还有变量.路径.字符串等等内容,最大的特点就是方便,更好开展工作 1.变量有环境变量(全局变量)和局部变量 环境变量就是 ...

  7. 九、Shell脚本高级编程实战第九部

    一.监控mysql主从同步是否异常,如果异常,发送短信给管理员 1)开发一个守护进程脚本每30秒实现检测一次. 2)如果错误号是:1158.1159.1008.1007.1062,请跳过 3)请使用数 ...

  8. 五、Shell脚本高级编程实战第五部

    一.条件表达式 在bash的各种流程控制结构中通常要进行各种测试,然后根据测试结果执行不同的操作.有时也和if结合,让我们方便判断. test: 1)判断文件是否存在:test -f  file 2) ...

  9. Shell脚本高级编程笔记一

     http://www.cnblogs.com/ygj0930/p/8184277.html 一:函数 1:创建函数 法一: function name{ commands } 法二: name() ...

随机推荐

  1. linux搭建mariadb,windows2008搭建iis+php+wordpress

    centos ip:192.168.101 windows ip :192.168.102 centos配置: [root@ml ~]# yum -y install mariadb-server # ...

  2. Linux 正则表达式与文本处理器 三剑客

    Linux 正则表达式与文本处理器 三剑客 一.正则表达式 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则. 在linu ...

  3. Spring Boot without the web server

    https://stackoverflow.com/questions/26105061/spring-boot-without-the-web-server/28565277 1. spring.m ...

  4. 吴裕雄--天生自然TensorFlow2教程:数据加载

    import tensorflow as tf from tensorflow import keras # train: 60k | test: 10k (x, y), (x_test, y_tes ...

  5. spring boot 环境配置(profile)切换

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  6. Android进阶——Android事件分发机制之dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent

    Android事件分发机制可以说是我们Android工程师面试题中的必考题,弄懂它的原理是我们避不开的任务,所以长痛不如短痛,花点时间干掉他,废话不多说,开车啦 Android事件分发机制的发生在Vi ...

  7. LeetCode刷题笔记(1-9)

    LeetCode1-9 本文更多是作为一个习题笔记,没有太多讲解 1.两数之和 题目请点击链接 ↑ 最先想到暴力解法,直接双循环,但是这样复杂度为n平方 public int[] twoSum(int ...

  8. 随机森林RF

    bagging 随机森林顾名思义,是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的.在得到森林之后,当有一个新的输 入样本进入的时候,就让森林中的每一棵决 ...

  9. UVA 12657/COJ 1329 HN第九届省赛 链表模拟

    因为最近学了Splay,刚看到这个题目总共四种操作,把某个数移到另一个数的左边 或者右边 交换两个数 翻转整个序列,马上想到用Splay,因为总点数和总操作数都为10^5,如果用Splay把操作优化到 ...

  10. rocketmq 使用

    rocketmq  基本使用可以看官网和官网给的demo. https://github.com/apache/rocketmq/tree/master/example 这里主要说明几个点:rocke ...