编写系统服务脚本

2023-12-21 22:46:40

? ? ? ?编写一个名为myprog的系统服务脚本,通过位置变量s1指定的start、stop、restart、status控制参数,分别用来启动、停止、重启sleep进程,以及查看sleep进程的状态。其中,命令sleep用来暂停指定秒数的时间,这里仅用做测试,在实际运维工作中应将sleep改为相应后台服务的控制命令序列。

[root@node01 ~]# vim myprog
#!/bin/bash
case "$1" in
start)
   echo -n "正在启动sleep服务..."
   if sleep 7200 &
 then                         //在后台启动sleep进程
       echo "OK"
   fi
   ;;
stop)
   echo -n "正在停止sleep服务..."
   pkill "sleep" &> /dev/null
echo "OK"                     //停止sleep进程
    ;;
status)
   if pgrep "sleep" &>/dev/null ; then  //判断并提示sleep进程状态

      echo "sleep服务已经启动."
   else
      echo "sleep服务已经停止."
   fi
   ;;
restart)                     //先停止、再启动服务
   $0 stop
   $0 start
   ;;
*)                           //默认显示用法信息
   echo "用法:$0 {start|stop|status|restart}"
esac

[root@node01 ~]# chmod +x myprog  //添加执行权限
[root@node01 ~]# ./myprog start

[root@node01 ~]# ./myprog status

[root@node01 ~]# ./myprog stop

[root@node01 ~]# ./myprog reload  //未提供此参数,按默认处理

? ? ? ?在Linux系统中,源码软件包编译安装后提供的服务控制脚本使用了 case分支语句;也有一些 源码包没有提供服务控制脚本,编译安装后可参照上例自行编写服务控制脚本,平时控制各种系统 服务时,提供的start、stop、restart等位置参数,正是由case语句结构来识别并完成相应操作的,有 兴趣的同学可自行查阅这些脚本内容。

? ? ?若要将myprog 服务交给 systemd来管理,还需要在/lib/systemd/system 目录下添加相应的 myprog.service配置文件。

文章来源:https://blog.csdn.net/2301_77023501/article/details/135136155
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。