linux下 nginx、php-fpm、mysql 開機自啓動

 

 一、分別爲每一個編寫shell腳本放入/etc/init.d下,添加service服務

 二、把每一個service服務加入到chkconfig列表

 

 

這裏咱們以php-fpm爲例說明下步驟:php

php-fpm:nginx

#!/bin/sh
# chkconfig: 2345 10 90 //這兩句不寫添加啓動器失敗
# description: php-fpm   //這兩句不寫添加自啓動失敗


# Source function library. 
. /etc/rc.d/init.d/functions  
 
# Source networking configuration.  
. /etc/sysconfig/network  
 
# Check that networking is up.  
[ "$NETWORKING" = "no" ] && exit 0  
 
phpfpm="/usr/local/php/sbin/php-fpm"   //本身php的安裝路徑
prog=$(basename ${phpfpm})  
 
lockfile=/var/lock/subsys/phpfpm
 
start() {  
    [ -x ${phpfpm} ] || exit 5  
    echo -n $"Starting $prog: "  
    daemon ${phpfpm}
    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  
    start  
}  
 
reload() {  
    configtest || return $?  
    echo -n $"Reloading $prog: "  
    killproc ${phpfpm} -HUP  
    RETVAL=$?  
    echo  
}  
 
force_reload() {  
    restart  
}  
 
configtest() {  
  ${phpfpm} -t
}  
 
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  
        ;;  
    status)  
        rh_status  
        ;;  
    *)  
        echo $"Usage: $0 {start|stop|status|restart|reload|configtest}"  
        exit 2  
esac
View Code

 一、把上面的文件命名爲php-fpm,放到/etc/init.d下web

經過chmod 755 php-fpm對這個文件開啓全用戶可執行權限shell

 

 這裏不少能夠用service操做的服務。bash

而咱們新添加的php-fpm也能夠用service servicename  stop|start|restart進行操做了ide

咱們來操做一把:php-fpm

 

爽!spa

 

二、接下里咱們把php-fpm加入到開機自啓動rest

結果報錯了,查了不少資料,原來是在php-fpm的shell裏面少寫了兩行,咱們給補上code

 

再來執行:

好了!

 

此時咱們已經把php-fpm加入到了自啓動行列了。關於chkconfig的用法,還有不少

 chkconfig --list [name]:顯示全部運行級系統服務的運行狀態信息(on或off)。若是指定了name,那麼只顯示指定的服務在不一樣運行級的狀態。
    chkconfig --add name:增長一項新的服務。chkconfig確保每一個運行級有一項啓動(S)或者殺死(K)入口。若有缺乏,則會從缺省的init腳本自動創建。
    chkconfig --del name:刪除服務,並把相關符號鏈接從/etc/rc[0-6].d刪除。
    chkconfig [--level levels] name:設置某一服務在指定的運行級是被啓動,中止仍是重置。

 

 好比我要查看chkconfig目前的任務列表:

 >>chkconfig  --list

就能看到咱們剛添加進任務的php-fpm

 

裏面的0-6表示了不一樣的等級

 

 

nginx設置

一、添加進service服務

在/etc/init.d目錄下添加nginx文件:

#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# it is v.0.0.2 version.
# chkconfig: - 85 15
# description: Nginx is a high-performance web and proxy server.
#              It has a lot of features, but it's not for everyone.
# processname: nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/usr/local/nginx/logs/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemons functions.
start() {
if [ -e $nginx_pid ];then
   echo "nginx already running...."
   exit 1
fi
   echo -n $"Starting $prog: "
   daemon $nginxd -c ${nginx_config}
   RETVAL=$?
   echo
   [ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
   return $RETVAL
}
# Stop nginx daemons functions.
stop() {
        echo -n $"Stopping $prog: "
        killproc $nginxd
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /usr/local/nginx/logs/nginx.pid
}
# reload nginx service functions.
reload() {
    echo -n $"Reloading $prog: "
    #kill -HUP `cat ${nginx_pid}`
    killproc $nginxd -HUP
    RETVAL=$?
    echo
}
# See how we were called.
case "$1" in
start)
        start
        ;;
stop)
        stop
        ;;
reload)
        reload
        ;;
restart)
        stop
        start
        ;;
status)
        status $prog
        RETVAL=$?
        ;;
*)
        echo $"Usage: $prog {start|stop|restart|reload|status|help}"
        exit 1
esac
exit $RETVAL
View Code

 

二、添加進開機自啓動

>>chkconfig nginx on

相關文章
相關標籤/搜索