记录 shell学习过程(8)函数
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)函数的更多相关文章
- 记录 shell学习过程(10 ) shell 对文件的操作
0.sed 常用内部命令 a 在匹配后面添加 i 在匹配前面添加 p 打印 d 删除 s 查找替换 c 更改 y 转换 N D P 下面用a来演示 1.sed 'a 追加内容' 文件 # sed 'a ...
- 记录 shell学习过程(9)正则表达式 转自树明聊运维
正则表达式 正则表达式介绍 特殊字符 POSIX特殊字符 一.正则表达式介绍 正则表达式是一种文本模式匹配,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符") ...
- 记录 shell学习过程(7) case 以及 shell 的特殊变量
case 语法 read -p "num:" n case $n in ) echo haha ;; ) echo hehe ;; ) echo heiehi ;; *) echo ...
- 记录 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 ...
- 记录 shell学习过程(11 ) shell 对输出流的处理
语法 awk [options] [BEGIN] {program} [END] [file] 常用命令选项 -F fs 指定描绘一行中数据字段的文件分隔符 默认为空格 -f file 指定读取程序 ...
- 记录 shell学习过程(6)while 以及 while的嵌套 以及 until
while中的5种条件 1.数学比较 read -p "Num :" num1 ] do echo 'greater' sleep done 2.字符串比较 read -p &qu ...
- 记录 shell学习过程(5)continue break
1.continue ;i<;i++)) do ];then continue fi echo $i done # ./continue.sh12346789 2.break ;i<;i+ ...
- 记录 shell学习过程(3) if 的格式
] #-e 为检测目录或文件是否存在 !为取反 then mkdir -v /tmp/ echo 'ok' fi if else if [ $USER == 'root' ] then echo 'h ...
- 记录 shell学习过程(2) read的用法
echo -n "login:"read username #read后面直接使用一个变量用于接收输入的数据 echo -n "password:"read ...
随机推荐
- GCD相关
板子: ? gcd(b, a % b) : a; } POJ1930 题意:给你一个无限循环小数,给到小数点后 9 位,要求这个数的分数形式. 解法: 要想解决这道题,首先应该了解如何将循环小数化为分 ...
- 部署Nexus作为docker的私有仓库
目录 Docker搭建Nexus私有仓库... 1 一.安装部署... 1 1.安装... 2 2.访问网页端... 2 二.配置使用... 2 1.创建本地仓库... 2 2.docker配置... ...
- SpringBoot 教程之发送邮件
目录 1. 简介 2. API 3. 配置 4. 实战 5. 示例源码 6. 参考资料 1. 简介 Spring Boot 收发邮件最简便方式是通过 spring-boot-starte ...
- MATLAB代码v2.0
% % V 原始评价指标矩 % % v_ij 第i个地区第j个指标的初始值 % % r_ij 第i个地区第j个指标的标准化值 % % R 标准化后的评价矩阵 % % m 统计地区总个数 % % n 已 ...
- Just a Hook HDU - 1698Just a Hook HDU - 1698 线段树区间替换
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> us ...
- 886. 求组合数 II(模板)
数据范围较大, a,b都是1e5 直接根据公式预处理 1/i就是求i的逆元(逆元求法:mod为质数,逆元就是 i^(mod-2)%mod ) O(N*logN) import java.util.S ...
- P3292 [SCOI2016]幸运数字 [线性基+倍增]
线性基+倍增 // by Isaunoya #include <bits/stdc++.h> using namespace std; #define rep(i, x, y) for ( ...
- JDBC连接数据库的7个步骤
1.JDBC所需的四个参数username.password.url.driverClass 2.加载JDBC驱动程序 3.创建数据库连接connection对象conn 4.创建preparedSt ...
- CF573E Bear and Bowling(6-1)
题意 洛谷 做法一 考虑一种贪心(先别管对不对),设当前已选择的集合为\(A\),这是考虑该集合的补集,每个元素加进来后的增量为\(V_i\),则挑选最大的那个加入该集合 结论1:遵循上述贪心,\(\ ...
- 简单记账本APP开发一
在对Android的一些基础的知识有了一定了解,以及对于AndroidStudio的如何使用有了 一定的熟悉后,决定做一个简单的记账本APP 开发流程 1.记账本的页面 2.可以添加新的账目 (一)页 ...