• SHELL-编写一个简易的httpd脚本


      编写脚本之前有几个东西要知道:

      现在用的包的安装是靠rpm来装的,rpm装的时候所有东西都做好了,包括脚本都已经给定了,直接用就行了。但是我们还应该清楚一点,在实际的工作中,为了用到更新的软件更新的功能,必须靠源代码来实现。源代码安装的好处是可以利用最新的版本,最新的功能。但是,它最不好的地方在于很多东西都需要自己动手,比如控制脚本都要自己来完成,一般没有提供。没有这些脚本是不能用service命令来控制服务的。一旦有了脚本管理服务就很容易了。

      1、服务安装完之后会形成一个可执行文件,这个可执行文件在/usr/sbin目录下(额外安装的服务的可执行程序都会放在这个目录下)

      2、一个服务一旦执行之后,将会形成一个锁文件。这个锁文件在/var/lock/subsys/目录下。基于这个锁可以做一些判断,如果锁存在说明服务正在运行,如果所不存在说明服务没有在运行。

      3、httpd服务启动时的pid文件在/var/run/httpd.pid中保存着。

      4、pkill在针对Apache来处理没有问题,但针对一些其他服务进程来处理的时候,这种方式可能处理不了。比较常用、可靠的一种方式是:killproc

      接下来演示一个httpd的控制脚本。

    [root@localhost ~]# vim http2.sh
    #!/bin/bash
    prog=/usr/sbin/httpd
    lockfile=/var/lock/subsys/httpd
    pidfile=/var/run/httpd.pid
    . /etc/init.d/functions

    start() {
    if [ -e $lockfile ];then
    echo "the program `basename $prog` is started....."
    else
    echo -e -n "the program `basename $prog` is starting....."
    sleep 2
    $prog && echo "[ OK ]" && touch $lockfile || echo "fail"
    fi
    }

    stop() {
    if [ -e $lockfile ];then
    echo -e -n "the program `basename $prog` is stopping...."
    sleep 2
    killproc `basename $prog` && rm -rf $lockfile && echo "[ OK ]" || echo "fail"
    else
    echo -e "the program `basename $prog` is stopped"
    fi
    }

    status() {
    if [ -e $pidfile ];then
    echo "the program `basename $prog` `cat $pidfile` is running"
    else
    echo -e "the program `basename $prog` is stopped"
    fi
    }

    case "$1" in
    start)
    start
    ;;
    stop)
    stop
    ;;
    status)
    status
    ;;
    restart)
    stop
    start
    ;;
    *)
    echo "USAGE:start|stop|satus|restart"
    esac

    测试情况如下:

  • 相关阅读:
    npm install命令请求制品库地址的说明
    左merge,右cherry-pick
    Spring validation中自定义的校验错误提示信息如何支持国际化
    IntelliJ IDEA中新增properties文件
    RequestFacade对象获取请求头时忽略大小写
    MongoDB高可用架构集群管理(一)
    MongoDB的备份和恢复
    Postman使用tv4进行JSON Schema结构验证和断言
    Postman中的全局/环境/集合变量的使用及优先级
    在Postman脚本中发送请求(pm.sendRequest)
  • 原文地址:https://www.cnblogs.com/reagina/p/6321758.html
Copyright © 2020-2023  润新知