Forum: NGINX How to correctly restart nginx?

Posted by Max (Guest)
on 2009-02-18 06:41
(Received via mailing list)
Hello,

I got some problem to restart nginx. I am running RHEL5 and using 0.6.33 
rpm
version.I changed some rewrite rules in nginx.conf and want to restart 
it.

When I tried :

/etc/init.d/nginx restart

It will only stop nginx. Then I type:

/etc/init.d/nginx status

I still see there are some processes running.

So, I kill all those processes and start nginx again. But my site is not
working anymore. It just redirect me to a 50x error page. I need to 
reboot
the server to get the sites running again.

Could anyone tell me what's the correct way to restart nginx? Thanks a 
lot.

Max
Posted by Joe (Guest)
on 2009-02-18 06:52
(Received via mailing list)
You should not to restart nginx after applying new configuration.

ps aux | egrep '(PID|nginx)'

and kill the PID

kill -HUP PID
Posted by Kevin Worthington (Guest)
on 2009-02-18 07:01
(Received via mailing list)
Have you tried (as root):
service nginx restart
-or-
service nginx stop && service nginx start

--
Kevin Worthington
Posted by Francisco Valladolid (Guest)
on 2009-02-18 07:34
(Received via mailing list)
The old school command.

# kill -HUP `cat /var/run/nginx.pid`

Regards.

On Wed, Feb 18, 2009 at 12:52 AM, Kevin Worthington
Posted by Max (Guest)
on 2009-02-18 08:39
(Received via mailing list)
Thanks a lot for your all you guys. I will try to see if I can restart 
it
correctly.

Max
Posted by Nuno Magalhães (Guest)
on 2009-02-18 13:46
(Received via mailing list)
AFAIK kill -HUP will not kill the process but rather make it read its
configuration file )which is what the OP wants anyway).

You could also try /etc/init.d/nginx restart
Works on Debian, might work on RH. Find the directory for your
distro's startup scripts, one of them oughta be nginx, pass "restart"
to it.

Nuno Magalhães
LU#484677
Posted by Igor Sysoev (Guest)
on 2009-02-18 16:41
(Received via mailing list)
On Wed, Feb 18, 2009 at 12:36:39PM +0000, Nuno Magalh??es wrote:

> AFAIK kill -HUP will not kill the process but rather make it read its
> configuration file )which is what the OP wants anyway).
> 
> You could also try /etc/init.d/nginx restart
> Works on Debian, might work on RH. Find the directory for your
> distro's startup scripts, one of them oughta be nginx, pass "restart"
> to it.

Have not Linux init scripts a "reload" option to gracefully restart 
service
using -HUP ?
Posted by Ian Hobson (Guest)
on 2009-02-18 17:27
(Received via mailing list)
Igor Sysoev wrote:
> Have not Linux init scripts a "reload" option to gracefully restart service
> using -HUP ?
>
>   
Hi,

I use the following under Ubuntu - and restart works fine since I
changed the sleep 1 to sleep 2.

This is /etc/init.d/nginx  - you will need to chmod +x /etc/init.d/nginx
before  use.

#! /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: starts the nginx web server
# Description:       starts nginx using start-stop-daemon
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/nginx
NAME=nginx
DESC=nginx
test -x $DAEMON || exit 0
# Include nginx defaults if available
if [ -f /etc/default/nginx ] ; then
    . /etc/default/nginx
fi
set -e
case "$1" in
  start)
    echo -n "Starting $DESC: "
    start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid
--exec $DAEMON -- $DAEMON_OPTS
    echo "$NAME."
    ;;
  stop)
    echo -n "Stopping $DESC: "
    start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid --exec
$DAEMON
    echo "$NAME."
    ;;
  restart|force-reload)
    echo -n "Restarting $DESC: "
    start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid --exec
$DAEMON
    sleep 2
    start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid
--exec $DAEMON -- $DAEMON_OPTS
    echo "$NAME."
    ;;
  reload)
      echo -n "Reloading $DESC configuration: "
      start-stop-daemon --stop --signal HUP --quiet --pidfile
/var/run/$NAME.pid --exec $DAEMON
      echo "$NAME."
      ;;
  *)
    N=/etc/init.d/$NAME
    echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
    exit 1
    ;;
esac
exit 0

regards

Ian
Posted by Max (Guest)
on 2009-02-19 01:08
(Received via mailing list)
Hi,

I find "reload" can get the job done.

But if I wantt o enable #gzip  on; , I still need to reboot the server 
after
I changed the conf file (I am not 100% sure about this, but all my 
stuffs
working after I reboot the server, I can't just use "reload" comand to 
get
it works").

At first, I just think the restart process is just like apache, but 
nginx
really does it better. You can archive zero downtime time if you restart 
it
correctly :-).

Max
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.