Nginx通过/etc/init.d/nginx方式启动或停止服务

Nginx 启动、重启、停止脚本

第一步
先运行命令关闭nginx
sudo kill `cat /usr/local/nginx/logs/nginx.pid`

第二步
vi /etc/init.d/nginx
输入以下内容 :

#!/bin/bash
#
# 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 改变而进行修改
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)  ## 获取nginx 名称
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
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
      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
      start
      ;;

      stop)
      rh_status_q || exit 0
      stop
      ;;
      restart|configtest)
      restart
      ;;
      reload)
      rh_status_q || exit 7
      reload
      ;;
      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

保存退出

第三步
# 设置执行权限
chmod +x /etc/init.d/nginx

第四步
## 设置中的模式开机启动
/sbin/chkconfig nginx on
检查一下
## 显示开机启动自动列表是否存在nginx
chkconfig --list # 显示开机自动启动的服务
sudo chkconfig --list nginx

nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off

完成!
之后,就可以使用以下命令了
service nginx start
service nginx stop
service nginx restart
service nginx reload
service nginx status

/etc/init.d/nginx start
/etc/init.d/nginx stop
/etc/init.d/nginx restart
/etc/init.d/nginx reload
/etc/init.d/nginx status
将nginx 加入系统变量
  • 修改/etc/profile 文件
  vim /etc/profile
  • 添加PATH
    如果已经存在PATH 也只需要在下面添加更多的PATH 两者之间不冲突
#  在文件中添加nginx 的执行文件。
export PATH=$PATH:/usr/local/nginx/sbin 
  • 使立即生效
    保存文件后PATH 不会立即生效需要执行 source /etc/profile
 source /etc/profile

通过 nginx 直接 调用相关信息

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的nginx通过/etc/init.d的启动脚本: ``` #!/bin/sh ### BEGIN INIT INFO # Provides: nginx # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: nginx web server # Description: nginx is a high-performance web server and reverse proxy. ### END INIT INFO # Author: Your Name <your.email@example.com> PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DAEMON=/usr/sbin/nginx NAME=nginx DESC=nginx # Check if binary exists test -x $DAEMON || exit 0 # Load the VERBOSE setting and other rcS variables . /lib/init/vars.sh # Define LSB log_* functions. # Depend on lsb-base (>= 3.2-14) to ensure that this file is present. . /lib/lsb/init-functions # Include nginx defaults if available if [ -f /etc/default/nginx ] ; then . /etc/default/nginx fi # Function that starts the daemon/service do_start() { # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON --test > /dev/null \ || return 1 start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON -- \ $DAEMON_OPTS \ || return 2 } # Function that stops the daemon/service do_stop() { # Return # 0 if daemon has been stopped # 1 if daemon was already stopped # 2 if daemon could not be stopped # other if a failure occurred start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile /var/run/$NAME.pid RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 # Wait for children to finish too if this is a daemon that forks # and if the daemon is only ever run from this initscript. # If the above conditions are not satisfied then add some other code # that waits for the process to drop all resources that could be # needed by services started subsequently. A last resort is to # sleep for some time. start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON [ "$?" = 2 ] && return 2 # Many daemons don't delete their pidfiles when they exit. rm -f /var/run/$NAME.pid return "$RETVAL" } # Function that sends a SIGHUP to the daemon/service do_reload() { start-stop-daemon --stop --signal HUP --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON --name $NAME return 0 } # Function that returns the status of the daemon/service do_status() { status_of_proc -p /var/run/$NAME.pid "$DAEMON" "$NAME" && exit 0 || exit $? } case "$1" in start) [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" do_start case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; esac ;; status) do_status ;; restart|force-reload) log_daemon_msg "Restarting $DESC" "$NAME" do_stop case "$?" in 0|1) do_start case "$?" in 0) log_end_msg 0 ;; 1) log_end_msg 1 ;; # Old process is still running *) log_end_msg 1 ;; # Failed to start esac ;; *) # Failed to stop log_end_msg 1 ;; esac ;; reload) log_daemon_msg "Reloading $DESC" "$NAME" do_reload log_end_msg $? ;; *) echo "Usage: $SCRIPTNAME {start|stop|status|restart|reload|force-reload}" >&2 exit 3 ;; esac exit 0 ``` 将此脚本保存到/etc/init.d/nginx,并确保其可执行。之后你就可以使用以下命令启动停止、重启和检查状态: ``` sudo service nginx start sudo service nginx stop sudo service nginx restart sudo service nginx status ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值