3.基于case分支编写服务脚本
问题
本案例要求编写myprog服务脚本,相关要求如下:
能支持start、stop、restart等控制参数
控制参数通过位置变量$1传入
能通过chkconfig命令来管理此服务
服务操作为sleep进程的开启/关闭/重启
方案
case分支属于匹配执行的方式,它针对指定的变量预先设置一个可能的取值,判断该变量的实际取值是否与预设的某一个值相匹配,如果匹配上了,就执行相应的一组操作,如果没有任何值能够匹配,就执行预先设置的默认操作。
case分支的语法结构如下所示:
case 变量值 in
模式1)
命令序列1 ;;
模式2)
命令序列2 ;;
… …
*)
默认命令序列
Esac
Linux系统的服务脚本默认均位于/etc/init.d/目录下,基本上都采用了case分支结构来识别控制参数。能够执行“/etc/init.d/服务名 start”或“service 服务名 start”来启动对应的服务,是因为对应的脚本文件能够处理“start”这个位置参数。
以network服务脚本为例,可以看一下它的case结构是怎样的(此处暂忽略其它无关语句):
[root@svr5 ~]# vim /etc/init.d/network
#! /bin/bash
Linux 基于case分支编写服务脚本
最新推荐文章于 2023-03-03 13:21:59 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)