记录 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 ...
随机推荐
- javascript中DOM获取和设置元素的内容、样式及效果
getElementById() 根据id获取dom元素 没有找到则返会Null <!DOCTYPE html> <html lang="en"> < ...
- java.lang.ClassCastException:java.util.LinkedHashMap不能转换为com.testing.models.xxx
后台接收前台的json字符串 转pojo 问题(Object 对应定义的pojo) ObjectMapper mapper=new ObjectMapper(); Object object = ma ...
- 首次使用Lambda表达式-sunziren
需要将List<Apple> list = new ArrayList<Apple>(); 按照Apple对象中的price属性从大到小排序. 第一个念头闪过的是冒泡排序,转念 ...
- windows使用proxifier全局代理 - 配置可用; windows10 配置全局代理 走 socks5
最近windows上需要配置全局代理 走 socks5,发现同类型的有 cow pcap 等解决方案,通过尝试发现还是proxifier 比较好用! 下载:https://www.proxifier. ...
- sql 根据查询的记录生成序号的几种方式
row_number() order() 函数会为查询出来的每一行记录生成一个序号,依次排序且不会重复,注意使用row_number函数时必须要用over子句选择对某一列进行排序才能生成序号. ra ...
- JN_0011:改变PPT的页面尺寸,并导出图片
1,改变尺寸 设计 -- 幻灯片大小 -- 自定义大小 2,导出图片 另存为 JPG 图片
- jdk8配置
Java SE Development Kit 8u241 下载 https://www.oracle.com/java/technologies/javase/javase-jdk8-downloa ...
- 1-1.初始K8s
术语及原理 Master(主节点:control plane) 集群中的神经中枢网关.负责整个集群的资源管理.Pod调度.弹性伸缩.安全控制.系统监控.纠错等管理功能. ApiServer 集群的网关 ...
- MVC开发之注入容器Ninject的使用
背景 在不使用注入容器之前,我们的项目往往存在着大量耦合的类,这使得我们在开发大型项目时难以维护.比如下面这个简单的MVC框架的例子,计算购物车的产品价格总和: /// <summary> ...
- 咸鱼的ACM之路:DFS水题集
DFS的核心就是从一种状态出发,转向任意的一个可行状态,直到达到结束条件为止.(个人理解) 下面全是洛谷题,毕竟能找到测试点数据的OJ我就找到这一个....在其他OJ上直接各种玄学问题... P159 ...