zoukankan      html  css  js  c++  java
  • 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

    测试情况如下:

  • 相关阅读:
    Inner Classes with TypeScript
    设计模式(一)
    C++定义构造函数必须使用初始化列表的场合
    制作Linux下程序安装包——使用脚本打包bin、run等安装包
    Windows下将程序打包为安装包(最为简易的方式)
    在Linux中查看文件的编码及对文件进行编码转换
    libpcap文件格式分析
    static_cast, dynamic_cast, const_cast
    字符1与数字1
    Linux下的多线程编程
  • 原文地址:https://www.cnblogs.com/reagina/p/6321758.html
Copyright © 2011-2022 走看看