start () {

       echo "Apache start ......        [OK]"
#return 0 可以写一个返回值,比如执行成功返回 0
} stop () { echo "Apache stop ...... [Fail]"
} start #调用函数 直接写函数名即可
stop

实战 nginx 启动管理脚本

 #!/usr/bin/env bash

 nginx_dir=/usr/local/nginx
nginxd=$nginx_dir/sbin/nginx
pid_file=$nginx_dir/logs/nginx.pid
proc=nginx if [ -e $pid_file ];then nginx_process_id=`cat $pid_file`
nginx_process_num=`ps aux | grep $nginx_process_id | grep -v "grep" | wc -l`
fi
start(){ if [ ! -e /etc/init.d/network ];then echo' /etc/init.d/network doesn`t exist'
exit
fi
. /etc/init.d/functions if [ -e $pid_file ] && [ $nginx_process_num -ge ];then
echo "nginx running..."
else
if [ -e $pid_file ] && [ $nginx_process_num -lt ];then
rm -f $pid_file
echo " nginx start ` daemon $nginxad` "
#action "nginx start " $nginxd 另外一种写法 对应27行
fi
echo " nginx start ` daemon $nginxd` " fi }
stop(){ if [ -e $pid_file ] && [ $nginx_process_num -ge ];then echo " nginx stop `killall -s QUIT $proc`"
else
echo 'nginx stop error'
fi
} restart(){
stop
sleep
start
} reload(){ if [ -e $pid_file ] && [ $nginx_process_num -ge ];then
echo "nginx reload `killall -s HUP $proc`"
else
echo 'nginx reload failed' fi
}
status(){
if [ -e $pid_file ] && [ $nginx_process_num -ge ];then echo 'nginx running'
else
echo 'nginx stop'
fi } case $ in
start) start;;
stop) stop;;
restart) restart;;
reload) reload;;
status) status;;
*) echo "USAGE: $0 start|stop|restart|reload|status" ;;
esac

然后将脚本复制到 /etc/init.d/中并命名为nginxd

再修改权限chmod 755 /etc/init.d/nginxd

然后就可以通过service来个控制了

service nginxd status
nginx running

记录 shell学习过程(8)函数的更多相关文章

  1. 记录 shell学习过程(10 ) shell 对文件的操作

    0.sed 常用内部命令 a 在匹配后面添加 i 在匹配前面添加 p 打印 d 删除 s 查找替换 c 更改 y 转换 N D P 下面用a来演示 1.sed 'a 追加内容' 文件 # sed 'a ...

  2. 记录 shell学习过程(9)正则表达式 转自树明聊运维

    正则表达式 正则表达式介绍 特殊字符 POSIX特殊字符 一.正则表达式介绍 正则表达式是一种文本模式匹配,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符") ...

  3. 记录 shell学习过程(7) case 以及 shell 的特殊变量

    case 语法 read -p "num:" n case $n in ) echo haha ;; ) echo hehe ;; ) echo heiehi ;; *) echo ...

  4. 记录 shell学习过程(4)for 循环

    1. for in ` #seq 生成从1到10 如果生成从10到1则写作 seq 10 -1 1 do echo $i done for in 也可以循环出字符串 for i in where is ...

  5. 记录 shell学习过程(11 ) shell 对输出流的处理

    语法 awk  [options] [BEGIN] {program} [END] [file] 常用命令选项 -F fs 指定描绘一行中数据字段的文件分隔符 默认为空格 -f file 指定读取程序 ...

  6. 记录 shell学习过程(6)while 以及 while的嵌套 以及 until

    while中的5种条件 1.数学比较 read -p "Num :" num1 ] do echo 'greater' sleep done 2.字符串比较 read -p &qu ...

  7. 记录 shell学习过程(5)continue break

    1.continue ;i<;i++)) do ];then continue fi echo $i done # ./continue.sh12346789 2.break ;i<;i+ ...

  8. 记录 shell学习过程(3) if 的格式

    ] #-e 为检测目录或文件是否存在 !为取反 then mkdir -v /tmp/ echo 'ok' fi if else if [ $USER == 'root' ] then echo 'h ...

  9. 记录 shell学习过程(2) read的用法

    echo -n "login:"read username  #read后面直接使用一个变量用于接收输入的数据 echo -n "password:"read ...

随机推荐

  1. GCD相关

    板子: ? gcd(b, a % b) : a; } POJ1930 题意:给你一个无限循环小数,给到小数点后 9 位,要求这个数的分数形式. 解法: 要想解决这道题,首先应该了解如何将循环小数化为分 ...

  2. 部署Nexus作为docker的私有仓库

    目录 Docker搭建Nexus私有仓库... 1 一.安装部署... 1 1.安装... 2 2.访问网页端... 2 二.配置使用... 2 1.创建本地仓库... 2 2.docker配置... ...

  3. SpringBoot 教程之发送邮件

    目录   1. 简介  2. API  3. 配置  4. 实战  5. 示例源码  6. 参考资料 1. 简介 Spring Boot 收发邮件最简便方式是通过 spring-boot-starte ...

  4. MATLAB代码v2.0

    % % V 原始评价指标矩 % % v_ij 第i个地区第j个指标的初始值 % % r_ij 第i个地区第j个指标的标准化值 % % R 标准化后的评价矩阵 % % m 统计地区总个数 % % n 已 ...

  5. Just a Hook HDU - 1698Just a Hook HDU - 1698 线段树区间替换

    #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> us ...

  6. 886. 求组合数 II(模板)

    数据范围较大, a,b都是1e5 直接根据公式预处理  1/i就是求i的逆元(逆元求法:mod为质数,逆元就是 i^(mod-2)%mod ) O(N*logN) import java.util.S ...

  7. P3292 [SCOI2016]幸运数字 [线性基+倍增]

    线性基+倍增 // by Isaunoya #include <bits/stdc++.h> using namespace std; #define rep(i, x, y) for ( ...

  8. JDBC连接数据库的7个步骤

    1.JDBC所需的四个参数username.password.url.driverClass 2.加载JDBC驱动程序 3.创建数据库连接connection对象conn 4.创建preparedSt ...

  9. CF573E Bear and Bowling(6-1)

    题意 洛谷 做法一 考虑一种贪心(先别管对不对),设当前已选择的集合为\(A\),这是考虑该集合的补集,每个元素加进来后的增量为\(V_i\),则挑选最大的那个加入该集合 结论1:遵循上述贪心,\(\ ...

  10. 简单记账本APP开发一

    在对Android的一些基础的知识有了一定了解,以及对于AndroidStudio的如何使用有了 一定的熟悉后,决定做一个简单的记账本APP 开发流程 1.记账本的页面 2.可以添加新的账目 (一)页 ...