zoukankan      html  css  js  c++  java
  • lnmp启动脚本

    
    
    #!/bin/bash
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
    export PATH
    
    # Check if user is root
    if [ $(id -u) != "0" ]; then
        printf "Error: You must be root to run this script!
    "
        exit 1
    fi
    
    printf "=========================================================================
    "
    printf "Manager for LNMP service  ,  Written by lixiuran 
    "
    printf "
    "
    printf "Usage: /root/lnmp {start|stop|reload|restart|kill|status}
    "
    printf "=========================================================================
    "
    
    NGINXNAME=nginx
    NGINXCONFIGFILE=/usr/local/nginx/conf/$NGINXNAME.conf
    NGINXPIDFILE=/var/run/$NGINXNAME.pid
    NGINXDAEMON=/usr/local/nginx/sbin/$NGINXNAME
    PHPFPMNAME=php-fpm
    PHPFPMCONFIGFILE=/usr/local/php/etc/$PHPFPMNAME.conf
    PHPFPMPIDFILE=/var/run/$PHPFPMNAME.pid
    PHPFPMDAEMON=/usr/local/php/sbin/$PHPFPMNAME
    HOSTNAME=`hostname`
    MYSQLPIDFILE=/data/mysql/$HOSTNAME.pid
    
    function_start()
    {
        printf "Starting LNMP...
    "
        if [ -f $NGINXPIDFILE ]; then
            printf "Nginx is runing!
    "
            exit 1
        else
            $NGINXDAEMON -c $NGINXCONFIGFILE
            printf "Nginx start successfully!
    "
        fi
    
        if [ -f $PHPFPMPIDFILE ]; then
            printf "php-fpm is runing!
    "
        else
        $PHPFPMDAEMON &
        printf "PHP-FPM start successfully!
    "
        fi
    
        if [ -f $MYSQLPIDFILE ]; then
            printf "MySQL is runing!
    "
        else
        /etc/init.d/mysql start
        printf "MySQL start successfully!
    "
        fi
    }
    
    function_stop()
    {
        printf "Stoping LNMP...
    "
        if  [ -f $NGINXPIDFILE ]; then
            kill `cat $NGINXPIDFILE`
            printf "Nginx program is stop
    "
        else
            printf "Nginx program is not runing!
    " 
        fi
    
        if  [ -f $PHPFPMPIDFILE ]; then
            kill -INT `cat $PHPFPMPIDFILE`
            printf "PHP-FPM program is stop
    "
        else
            printf "PHP-FPM program is not runing!
    " 
        fi
    
        if  [ -f $MYSQLPIDFILE ]; then
            /etc/init.d/mysql stop
            printf "MySQL program is stop
    "
        else
            printf "MySQL program is not runing!
    " 
        fi
    }
    
    function_reload()
    {
        printf "Reload LNMP...
    "
        printf "Reload Nginx configure...
    "
        $NGINXDAEMON -t
        $NGINXDAEMON -s reload
        printf "Nginx program is reloding!
    "
        /etc/init.d/mysql reload
        kill -USR2 `cat $PHPFPMPIDFILE`
    }
    
    
    function_restart()
    {
        printf "Reload LNMP...
    "
        printf "Reload Nginx configure...
    "
        $NGINXDAEMON -t
        kill `cat $NGINXPIDFILE`
        $NGINXDAEMON -c $NGINXCONFIGFILE
        printf "Nginx program is restarting!
    "
        /etc/init.d/mysql restart
        printf "PHP-FPM program is restarting!
    "
        kill -USR2 `cat $PHPFPMPIDFILE`
    }
    
    function_kill()
    {
        kill `cat $NGINXPIDFILE`
        kill `cat $PHPFPMPIDFILE`
        kill `cat $MYSQLPIDFILE`
    }
    
    function_status()
    {
        if [ -f $NGINXPIDFILE ]; then
          printf "Nginx is runing!
    "
        else
        printf "Nginx is stop!
    "
        fi
    
        if [ -f $PHPFPMPIDFILE ]; then
          printf "php-fpm is runing!
    "
        else
        printf "php-fpm is stop!
    "
        fi
    /etc/init.d/mysql status
    }
    
    case "$1" in
        start)
            function_start
            ;;
        stop)
            function_stop
            ;;
        restart)
            function_stop
            function_start
            ;;
        reload)
            function_reload
            ;;
        kill)
            function_kill
            ;;
        status)
            function_status
            ;;
        *)
            printf "Usage: /root/lnmp {start|stop|reload|restart|kill|status}
    "
    esac
    exit
    
    
    
     

    Nginx和PHP-FPM的启动/重启脚本

    一、Nginx启动脚本/etc/init.d/nginx

    #!/bin/bash
    #
    # Startup script for Nginx - this script starts and stops the nginx daemon
    #
    # chkconfig:   - 85 15
    # description:  Nginx is an HTTP(S) server, HTTP(S) reverse proxy and IMAP/POP3 proxy server
    # processname: nginx
    # config:      /usr/local/nginx/conf/nginx.conf
    # pidfile:     /usr/local/nginx/logs/nginx.pid
     
    # Source function library.
    . /etc/rc.d/init.d/functions
     
    # Source networking configuration.
    . /etc/sysconfig/network
     
    # Check that networking is up.
    [ "$NETWORKING" = "no" ] && exit 0
     
    nginx="/usr/local/nginx/sbin/nginx"
    prog=$(basename $nginx)
     
    NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
     
    [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
     
    lockfile=/var/lock/subsys/nginx
     
    start() {
        [ -x $nginx ] || exit 5
        [ -f $NGINX_CONF_FILE ] || exit 6
        echo -n $"Starting $prog: "
        daemon $nginx -c $NGINX_CONF_FILE
        retval=$?
        echo
        [ $retval -eq 0 ] && touch $lockfile
        return $retval
    }
     
    stop() {
        echo -n $"Stopping $prog: "
        killproc $prog -QUIT
        retval=$?
        echo
        [ $retval -eq 0 ] && rm -f $lockfile
        return $retval
    }
     
    restart() {
        configtest || return $?
        stop
        sleep 1
        start
    }
     
    reload() {
        configtest || return $?
        echo -n $"Reloading $prog: "
        killproc $nginx -HUP
        RETVAL=$?
        echo
    }
     
    force_reload() {
        restart
    }
     
    configtest() {
      $nginx -t -c $NGINX_CONF_FILE
    }
     
    rh_status() {
        status $prog
    }
     
    rh_status_q() {
        rh_status >/dev/null 2>&1
    }
     
    case "$1" in
        start)
            rh_status_q && exit 0
            $1
            ;;
        stop)
            rh_status_q || exit 0
            $1
            ;;
        restart|configtest)
            $1
            ;;
        reload)
            rh_status_q || exit 7
            $1
            ;;
        force-reload)
            force_reload
            ;;
        status)
            rh_status
            ;;
        condrestart|try-restart)
            rh_status_q || exit 0
                ;;
        *)
            echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
            exit 2
    esac

    #==============================================================

    编辑好后保存,执行以下命令

    sudo chmod +x /etc/init.d/nginx
    sudo /sbin/chkconfig nginx on
    # 检查一下
    sudo /sbin/chkconfig --list nginx
    nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    完成!可以使用以下命令管理Nginx了

    service nginx start
    service nginx stop
    service nginx restart
    service nginx reload
     
    /etc/init.d/nginx start
    /etc/init.d/nginx stop
    /etc/init.d/nginx restart
    /etc/init.d/nginx reload

    二、PHP-FPM启动脚本/etc/init.d/php-fpm

    #!/bin/bash
    #
    # Startup script for the PHP-FPM server.
    #
    # chkconfig: 345 85 15
    # description: PHP is an HTML-embedded scripting language
    # processname: php-fpm
    # config: /usr/local/php/etc/php.ini
     
    # Source function library.
    . /etc/rc.d/init.d/functions
     
    PHP_PATH=/usr/local
    DESC="php-fpm daemon"
    NAME=php-fpm
    # php-fpm路径
    DAEMON=$PHP_PATH/php/sbin/$NAME
    # 配置文件路径
    CONFIGFILE=$PHP_PATH/php/etc/php-fpm.conf
    # PID文件路径(在php-fpm.conf设置)
    PIDFILE=$PHP_PATH/php/var/run/$NAME.pid
    SCRIPTNAME=/etc/init.d/$NAME
     
    # Gracefully exit if the package has been removed.
    test -x $DAEMON || exit 0
     
    rh_start() {
      $DAEMON -y $CONFIGFILE || echo -n " already running"
    }
     
    rh_stop() {
      kill -QUIT `cat $PIDFILE` || echo -n " not running"
    }
     
    rh_reload() {
      kill -HUP `cat $PIDFILE` || echo -n " can't reload"
    }
     
    case "$1" in
      start)
            echo -n "Starting $DESC: $NAME"
            rh_start
            echo "."
            ;;
      stop)
            echo -n "Stopping $DESC: $NAME"
            rh_stop
            echo "."
            ;;
      reload)
            echo -n "Reloading $DESC configuration..."
            rh_reload
            echo "reloaded."
      ;;
      restart)
            echo -n "Restarting $DESC: $NAME"
            rh_stop
            sleep 1
            rh_start
            echo "."
            ;;
      *)
             echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
             exit 3
            ;;
    esac
    exit 0

    #=====================================================

    编辑好后保存,执行以下命令

    sudo chmod +x /etc/init.d/php-fpm
    sudo /sbin/chkconfig php-fpm on
    # 检查一下
    sudo /sbin/chkconfig --list php-fpm
    php-fpm 0:off 1:off 2:on 3:on 4:on 5:on 6:off

    完成!可以使用以下命令管理php-fpm了

    service php-fpm start
    service php-fpm stop
    service php-fpm restart
    service php-fpm reload
     
    /etc/init.d/php-fpm start
    /etc/init.d/php-fpm stop
    /etc/init.d/php-fpm restart
    /etc/init.d/php-fpm reload

    注意:里面的程序路径必须写对,这里用的都是默认的路径哟!而且对于php-fpm,默认的pid文件是没有设置的,要使用这个必须先在配置文件启用pid文件!~

    二、mysql启动脚本/etc/init.d/mysql

    添加服务,拷贝服务脚本到init.d目录,并设置开机启动

    cp /usr/local/mysql/support-files/support-files/mysql.server /etc/init.d/mysql
    chkconfig mysql on
    service mysql start  --启动MySQL
  • 相关阅读:
    团队第五次作业评分 项目冲刺
    团队第四次作业评分 系统设计和数据库设计
    随笔
    爬虫
    javascript简单分页
    cookie的存储与取值
    redis的五种数据类型
    什么是反射
    小王同学的随笔
    something just like this---About Me
  • 原文地址:https://www.cnblogs.com/lixiuran/p/3725972.html
Copyright © 2011-2022 走看看