一、写一个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. 2019-9-16 java上课知识整理总结(动手动脑,课后实验)

    java上课知识整理总结(动手动脑,课后实验) 一,课堂测试 1,题目:课堂测试:像二柱子那样,花二十分钟写一个能自动生成30道小学四则运算题目的 “软件” 要求:(1)题目避免重复: (2)可定制( ...

  2. 每天一点点之vue框架开发 - vue-router路由在循环中携带参数

    场景:要实现一个标签云,通过循环把标签渲染,然后单击标签的时候实现跳转,跳转路由一样,通过唯一参数来实现请求不同的数据 因此,就需要在for循环中来携带参数,本节所讲的是路由使用对象的形式(别名)来实 ...

  3. POJ 1944:Fiber Communications

    Fiber Communications Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 4236   Accepted: 1 ...

  4. Java工程师面试题

    1. J2EE 是什么?它包括哪些技术?解答:从整体上讲,J2EE 是使用 Java 技术开发企业级应用的工业标准,它是 Java 技术不断适应和促进企业级应用过程中的产物.适用于企业级应用的 J2E ...

  5. bzoj 3732Network

    先搞个最小生成树,然后lca(和之前的一个cf题差不多2333, 纯属颓废了..) 顺便思考了一下正确性. 因为所求的是所有路径中最大边的最小值.而kruskal每次往里添加的就是最小边.所以在生成树 ...

  6. 输入框中提示信息(html5)

    placeholder 属性规定可描述输入字段预期值的简短的提示信息(比如:一个样本值或者预期格式的短描述). 该提示会在用户输入值之前显示在输入字段中. 注意:placeholder 属性适用于下面 ...

  7. 把a表格的内容读取出来,然后写到b表格

    把a表格的内容读取出来,然后写到b表格 #!/usr/bin/env python3 import sys #控制台要输入的两个参数格式为:python script_name.py 参数1 参数2 ...

  8. 解决vue-cli3不停请求 /sockjs-node/info?t= 问题

    使用cli3会遇到一直报错get不到/sockjs-node/info?t= 的问题: 如果你的项目没有用到 sockjs,那么就找到报错的地方,将其注释掉即可. 路径在/node_modules/s ...

  9. 常用函数式接口与Stream API简单讲解

    常用函数式接口与Stream API简单讲解 Stream简直不要太好使啊!!! 常用函数式接口 Supplier<T>,主要方法:T get(),这是一个生产者,可以提供一个T对象. C ...

  10. 基于百度语音识别API的Python语音识别小程序

    一.功能概述 实现语音为文字,可以扩展到多种场景进行工作,这里只实现其基本的语言接收及转换功能. 在语言录入时,根据语言内容的多少与停顿时间,自动截取音频进行转换. 工作示例: 二.软件环境 操作系统 ...