您的位置:首页 > 运维架构 > Nginx

Linux(CentOS)系统下设置nginx开机自启动

2017-03-06 15:07 671 查看
Nginx 是一个很强大的高性能Web和反向代理服务器。下面介绍在linux下安装后,如何设置开机自启动。

首先,在linux系统的/etc/init.d/目录下创建nginx文件,使用如下命令:

vi /etc/init.d/nginx

在脚本中添加如下命令:

*********************************************************************************************************************************

#!/bin/bash
# nginx Startup script for the Nginx HTTPServer
# it is v.0.0.2 version.
# chkconfig: - 85 15
# description: Nginx is a high-performance weband proxy server.
#            It has a lot of features, butit'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=/var/run/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networkingconfiguration.
. /etc/sysconfig/network
# Check that networking isup.
[ ${NETWORKING} = "no" ]&& exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemonsfunctions.
start() {
if [ -e $nginx_pid ];then
   echo"nginx already running...."
   exit1
fi
   echo -n$"Starting $prog: "
   daemon$nginxd -c ${nginx_config}
  RETVAL=$?
  echo
   [ $RETVAL= 0 ] && touch/var/lock/subsys/nginx
   return$RETVAL
}
# Stop nginx daemonsfunctions.
stop() {
       echo -n $"Stopping $prog:"
       killproc$nginxd
       RETVAL=$?
       echo
       [ $RETVAL = 0 ]&& rm -f /var/lock/subsys/nginx/var/run/nginx.pid
}
# reload nginx servicefunctions.
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

*********************************************************************************************************************************

注意红色加粗部分,需要将路径改为自己机器的相应路径。

接着,设置文件的访问权限:
chmod a+x /etc/init.d/nginx                                                        (a+x参数表示 ==> all user can execute 所有用户可执行)

最后将ngix加入到rc.local文件中,这样开机的时候nginx就默认启动了
vi /etc/rc.local
添加

/etc/init.d/nginx start  
保存并退出
下次重启就会生效,实现nginx的自启动。

编写开机启动脚本:

I、nginx开机启动

1、在/etc/init.d/目录下创建脚本

vi  /etc/init.d/nginx

2、更改脚本权限

chmod 775 /etc/init.d/nginx

3、编写脚本内容

    

#!/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/webserver/nginx/sbin/nginx
nginx_config=/usr/local/webserver/nginx/conf/nginx.conf
nginx_pid=/usr/local/webserver/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/webserver/nginx/logs/nginx.pid
}

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

  

 

4、设置开机启动

chkconfig nginxd on

II  设置MySQL开机启动

1、将mysql安装目录下 support-files目录下的mysql.server文件拷贝到/etc/init.d/目录下并改名为mysqld,并更改权限

chmod 775 /etc/init.d/mysqld

2、设置开机启动

#chkconfig mysqld on


III、PHP-fpm开机启动

1、在/etc/init.d/目录下创建脚本

vi  /etc/init.d/php-fpm


2、更改脚本权限

chmod 775 /etc/init.d/php-fpm


3、编写脚本内容  
#!/bin/sh
#
# php-fpm - this script starts and stops the php-fpm daemin
#
# chkconfig: - 85 15
# processname: php-fpm
# config:      /usr/local/php/etc/php-fpm.conf

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="php-fpm daemon"
NAME=php-fpm
DAEMON=/usr/local/php/sbin/$NAME     //这里设成自己的目录
CONFIGFILE=/usr/local/php/etc/php-fpm.conf   //这里设成自己的目录
PIDFILE=/usr/local/php/var/run/$NAME.pid   //这里设成自己的目录
SCRIPTNAME=/etc/init.d/$NAME   //这里设成自己的目录

# If the daemon file is not found, terminate the script.
test -x $DAEMON || exit 0

d_start(){
$DAEMON -y $CONFIGFILE || echo -n " already running"
}

d_stop(){
kill -QUIT `cat $PIDFILE` || echo -n " no running"
}

d_reload(){
kill -HUP `cat $PIDFILE` || echo -n " could not reload"
}

case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
reload)
echo -n "Reloading $DESC configuration..."
d_reload
echo "Reloaded."
;;
restart)
echo -n "Restarting $DESC: $NAME"
d_stop
# Sleep for two seconds before starting again, this should give the nginx daemon some time to perform a graceful stop
sleep 2
d_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload)" >&2
exit 3
;;
esac
exit 0

  

4、设置开机启动
#chkconfig php-fpm on
至此,大功告成。可以用命令 chkconfig 查看开机启动服务列表
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: