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

    测试情况如下:

  • 相关阅读:
    POJ 1426 Find The Multiple(数论——中国同余定理)
    POJ 2253 Frogger(Dijkstra变形——最短路径最大权值)
    POJ 3790 最短路径问题(Dijkstra变形——最短路径双重最小权值)
    POJ 3278 Catch That Cow(模板——BFS)
    HDU 1071 The area
    HDU 1213 How Many Tables(模板——并查集)
    POJ 1611 The Suspects
    light oj 1214 Large Division
    POJ 1258 Agri-Net(Prim算法求解MST)
    POJ 2387 Til the Cows Come Home(模板——Dijkstra算法)
  • 原文地址:https://www.cnblogs.com/reagina/p/6321758.html
Copyright © 2011-2022 走看看