在添加 nginx 服务之后, 大家会希望开机伴随启动 nginx, 避免手动路径输入启动;
nginx 官方提供了启动脚本:
nginx 安装可以参考[web] Nginx 下载与安装 https://www.cnblogs.com/h--d/p/5756795.html
配置步骤
1, 添加 nginx 服务, 进入 / etc/init.d / 目录, 新添加 nginx 脚本文件, 内容就是官方起启动脚本(/etc/init.d/nginx), 如下:
- #!/bin/sh
- #
- # 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: /etc/nginx/nginx.conf
- # config: /etc/sysconfig/nginx
- # pidfile: /var/run/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/sbin/nginx"
- prog=$(basename $nginx)
- NGINX_CONF_FILE="/etc/nginx/nginx.conf"
- [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
- lockfile=/var/lock/subsys/nginx
- make_dirs() {
- # make required directories
- user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
- if [ -n "$user" ]; then
- if [ -z "`grep $user /etc/passwd`" ]; then
- useradd -M -s /bin/nologin $user
- fi
- options=`$nginx -V 2>&1 | grep 'configure arguments:'`
- for opt in $options; do
- if [ `echo $opt | grep '.*-temp-path'` ]; then
- value=`echo $opt | cut -d "=" -f 2`
- if [ ! -d "$value" ]; then
- # echo "creating" $value
- mkdir -p $value && chown -R $user $value
- fi
- fi
- done
- fi
- }
- start() {
- [ -x $nginx ] || exit 5
- [ -f $NGINX_CONF_FILE ] || exit 6
- make_dirs
- 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
2, 修改脚本内容
a, 在脚本中 11 行, 新增 pid 文件位置, 可以在 nginx 运行时查看, 命令: find / -name nginx.pid
1 pidfile="/data/soft/nginx/logs/nginx.pid"
b, 在脚本中 22 行 (nginx="/usr/sbin/nginx") 修改 nginx 脚本文件位置
1 nginx="/data/soft/nginx/sbin/nginx"
c, 在脚本中 25 行 (NGINX_CONF_FILE="/etc/nginx/nginx.conf") 修改 nginx 配置文件位置
1 NGINX_CONF_FILE="/data/soft/nginx/conf/nginx.conf"
3, 给脚本增加可执行权限, 命令: chmod a+x /etc/init.d/nginx
到这一步服务已经添加好了
a, 服务启动: service nginx start
b, 服务停止: service nginx stop
c, 服务重新加载: service nginx reload
4, 添加开机启动项
a, 添加命令: chkconfig --add /etc/init.d/nginx
b, 查看启动项, 命令: chkconfig --list
nginx 启动项状态: nginx 0:off 1:off 2:off 3:off 4:off 5:off 6:off
c, 需要设置 nginx 启动命令: chkconfig nginx on
nginx 启动项状态: nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off
d, 关闭命令为: chkconfig nginx on
e, 删除命令为: chkconfig --del nginx
5, 执行命令 reboot, 重启服务器即可验证 nginx 开机启动
来源: http://www.bubuko.com/infodetail-2855903.html