Nginx startup script and restart script code

  • 2020-05-06 12:13:58
  • OfStack

The first step
First run the command to close nginx

sudo kill `cat /usr/local/nginx/logs/nginx.pid`
The second step

vi /etc/init.d/nginx
Enter
for the following
 
#!/bin/sh 
# 
# nginx - this script starts and stops the nginx daemin 
# 
# 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" 

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 
$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 

Save exit

The third step

chmod +x /etc/init.d/nginx
The fourth step

/sbin/chkconfig nginx on
Check

sudo /sbin/chkconfig --list nginx
nginx 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Done!

After that, you can use the following command
 
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 

The following is an
post by other authors
 
#vi /etc/init.d/nginx 
#! /bin/sh 
### BEGIN INIT INFO 
# Provides: Nginx-php-fpm(fastcgi) 
# Required-Start: $all 
# Required-Stop: $all 
# Default-Start: 3 5 
# Default-Stop: 0 1 6 
# Short-Description: Start and stop nginx-fcgi in external FASTCGI mode 
# Description: Start and stop nginx-fcgi in external FASTCGI mode 
# http://www.linxutone.org msn:cnseek@msn.com 
### END INIT INFO 

set -e 

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 
DESC="nginx daemon" 
NAME=nginx 
DAEMON=/usr/local/nginx/sbin/$NAME 
CONFIGFILE=/usr/local/nginx/conf/nginx.conf 
PIDFILE=/var/run/$NAME.pid 
SCRIPTNAME=/etc/init.d/$NAME 

# Gracefully exit if the package has been removed. 
test -x $DAEMON || exit 0 

d_start() { 
/usr/local/php-fcgi/sbin/php-fpm start > /dev/null 2>&1 
$DAEMON -c $CONFIGFILE || echo -n " already running" 
} 

d_stop() { 
/usr/local/php-fcgi/sbin/php-fpm stop > /dev/null 2>&1 
kill -QUIT `cat $PIDFILE` || echo -n " not running" 
} 

d_reload() { 
/usr/local/php-fcgi/sbin/php-fpm reload > /dev/null 2>&1 
kill -HUP `cat $PIDFILE` || echo -n " can't 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 1 
d_start 
echo "." 

*) 
echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2 
exit 3 

esac 

exit 0 

#chmod u+x /etc/init.d/nginx

Usage:
 
#/etc/init.d/nginx start 
#/etc/init.d/nginx stop 
#/etc/init.d/nginx restart 

Note that the
installation path was changed
 
#!/bin/bash 
# 
# Init file for nginx server daemon 
# 
# chkconfig: 234 99 99 
# description: nginx server daemon 
# 
# source function library 
. /etc/rc.d/init.d/functions 
# pull in sysconfig settings 
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx 
RETVAL=0 
prog="nginx" 
PAT=/usr/local/nginx 
NGINXD=/usr/local/nginx/sbin/nginx 
PID_FILE=/usr/local/nginx/nginx.pid 
start() 
{ 
echo -n $"Starting $prog: " 
$NGINXD 2>/dev/null $OPTIONS && success || failure 
RETVAL=$? 
[ "$RETVAL" = 0 ] && touch /var/lock/subsys/nginx 
echo 
} 
stop() 
{ 
echo -n $"Shutting down $prog: " 
killproc nginx 
RETVAL=$? 
echo 
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/nginx 
return $RETVAL 
} 
reload() 
{ 
echo -n $"Reloading nginx: " 
killproc nginx -HUP 
RETVAL=$? 
echo 
return $RETVAL 
} 
case "$1" in 
start) 
start 

stop) 
stop 

restart) 
stop 
start 

reload) 
reload 

status) 
status -p $PID_FILE nginx 
RETVAL=$? 

*) 
echo $"Usage: $0 {start|stop|restart|reload|status}" 
RETVAL=1 
esac 
exit $RETVAL 

Related articles: