六、Shell脚本高级编程实战第六部
一、写一个start_nginx脚本,当启动、停止、重启时利用系统函数模拟实现系统脚本启动的特殊颜色效果 (用if实现)
. /etc/init.d/functions
then
echo "USAGE $0 {start|stop|restart}"
exit 1
fi
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.开发脚本代码:
. /etc/init.d/functions
path="/application/mysql/bin"
user=root
pass=oldboy124
function usage(){
echo "$0 (start|stop|restart)"
exit 1
}
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
}
$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
}
then
start_mysql
elif [ "$1" == "stop" ]
then
stop_mysql
elif [ "$1" == "restart" ]
stop_mysql
start_mysql
else
usage
fi
测试:

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

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

2)将脚本交给chkconfig管理器
chkconfig --add mysqld
3)进行服务的开启:
chkconfig mysqld on
六、Shell脚本高级编程实战第六部的更多相关文章
- 四、Shell脚本高级编程实战第四部
一.比较两个数的大小 #!/bin/shread -p "Pls input two num:" a b[ -z "$a" ] || [ -z "$b ...
- 七、Shell脚本高级编程实战第七部
一.写网络服务的系统启动脚本 利用case语句开发类似系统启动rsync服务的脚本 代码: #!/bin/sah. /etc/init.d/functionspidfile="/var/ru ...
- 八、Shell脚本高级编程实战第八部
一.使用for循环在/oldboy目录下创建10个文件名为oldboy-x的文件 #!/bin/sh[ ! -d /oldboy ] && mkdir -p /oldbfor i in ...
- 一、Shell脚本高级编程实战第一部
Shell脚本语言是实现linux系统自动化管理的重要且必要的工具,几乎每一个合格的linux系统管理员或者高级运维工程师都要熟练shell脚本语言的编写,只有这样才能提升工作效率,解决工作中的重复劳 ...
- 三、Shell脚本高级编程实战第三部
保养好自己的发动机:身体的和心里的身体健康:打打球,跑跑步心里健康:多和大家接触,保持家人.朋友的良好关系一.$*和$@的区别 $*:获取shell的所有参数,将所有的参数视为单个字符串. $ ...
- 二、Shell脚本高级编程实战第二部
一.什么是变量? 变量就是一个固定的字符串替代更多更复杂的内容,当然内容里面可能还有变量.路径.字符串等等内容,最大的特点就是方便,更好开展工作 1.变量有环境变量(全局变量)和局部变量 环境变量就是 ...
- 九、Shell脚本高级编程实战第九部
一.监控mysql主从同步是否异常,如果异常,发送短信给管理员 1)开发一个守护进程脚本每30秒实现检测一次. 2)如果错误号是:1158.1159.1008.1007.1062,请跳过 3)请使用数 ...
- 五、Shell脚本高级编程实战第五部
一.条件表达式 在bash的各种流程控制结构中通常要进行各种测试,然后根据测试结果执行不同的操作.有时也和if结合,让我们方便判断. test: 1)判断文件是否存在:test -f file 2) ...
- Shell脚本高级编程笔记一
http://www.cnblogs.com/ygj0930/p/8184277.html 一:函数 1:创建函数 法一: function name{ commands } 法二: name() ...
随机推荐
- 2019-9-16 java上课知识整理总结(动手动脑,课后实验)
java上课知识整理总结(动手动脑,课后实验) 一,课堂测试 1,题目:课堂测试:像二柱子那样,花二十分钟写一个能自动生成30道小学四则运算题目的 “软件” 要求:(1)题目避免重复: (2)可定制( ...
- 每天一点点之vue框架开发 - vue-router路由在循环中携带参数
场景:要实现一个标签云,通过循环把标签渲染,然后单击标签的时候实现跳转,跳转路由一样,通过唯一参数来实现请求不同的数据 因此,就需要在for循环中来携带参数,本节所讲的是路由使用对象的形式(别名)来实 ...
- POJ 1944:Fiber Communications
Fiber Communications Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 4236 Accepted: 1 ...
- Java工程师面试题
1. J2EE 是什么?它包括哪些技术?解答:从整体上讲,J2EE 是使用 Java 技术开发企业级应用的工业标准,它是 Java 技术不断适应和促进企业级应用过程中的产物.适用于企业级应用的 J2E ...
- bzoj 3732Network
先搞个最小生成树,然后lca(和之前的一个cf题差不多2333, 纯属颓废了..) 顺便思考了一下正确性. 因为所求的是所有路径中最大边的最小值.而kruskal每次往里添加的就是最小边.所以在生成树 ...
- 输入框中提示信息(html5)
placeholder 属性规定可描述输入字段预期值的简短的提示信息(比如:一个样本值或者预期格式的短描述). 该提示会在用户输入值之前显示在输入字段中. 注意:placeholder 属性适用于下面 ...
- 把a表格的内容读取出来,然后写到b表格
把a表格的内容读取出来,然后写到b表格 #!/usr/bin/env python3 import sys #控制台要输入的两个参数格式为:python script_name.py 参数1 参数2 ...
- 解决vue-cli3不停请求 /sockjs-node/info?t= 问题
使用cli3会遇到一直报错get不到/sockjs-node/info?t= 的问题: 如果你的项目没有用到 sockjs,那么就找到报错的地方,将其注释掉即可. 路径在/node_modules/s ...
- 常用函数式接口与Stream API简单讲解
常用函数式接口与Stream API简单讲解 Stream简直不要太好使啊!!! 常用函数式接口 Supplier<T>,主要方法:T get(),这是一个生产者,可以提供一个T对象. C ...
- 基于百度语音识别API的Python语音识别小程序
一.功能概述 实现语音为文字,可以扩展到多种场景进行工作,这里只实现其基本的语言接收及转换功能. 在语言录入时,根据语言内容的多少与停顿时间,自动截取音频进行转换. 工作示例: 二.软件环境 操作系统 ...