]> git.pld-linux.org Git - packages/nginx.git/blobdiff - nginx.init
Up to 1.21.3 (supports openssl 3.0); update modsecurity to 3.05; rtmp to 1.2.2.
[packages/nginx.git] / nginx.init
index 5ac987bfe0ddff6dd5bbc116bc24733bdf4f8fa7..1d62b97a8577ea655521e4496666881d7440489d 100755 (executable)
@@ -133,25 +133,41 @@ condrestart() {
 # http://nginx.org/en/docs/control.html#upgrade
 # TODO: handle revert back on failed upgrade
 upgrade() {
-       local oldbin_pidfile="${pidfile}.oldbin"
+       local oldbin_pidfile="${pidfile}.oldbin" retry
 
        checkconfig
        show "Upgrading $svname"
        killproc -p $pidfile $prog -USR2
        RETVAL=$?
-       sleep 1
-       if [ -f $oldbin_pidfile ] && [ -f $pidfile ]; then
-               show "Upgrade: stopping old process"
-               killproc -p $oldbin_pidfile $prog -QUIT
-               return 0
-       else
-               return 1
-       fi
+
+       # wait for 15s
+       retry=60
+       while [ $retry -gt 0 ]; do
+               if [ -f $oldbin_pidfile ] && [ -f $pidfile ]; then
+                       show "Upgrade: stopping old process"
+                       killproc -p $oldbin_pidfile $prog -QUIT
+                       return 0
+               else
+                       usleep 250000
+                       retry=$(($retry -1))
+               fi
+       done
+
+       show "Upgrade: stopping old process"; fail
+       nls 'old process pid file was not found'
+       return 1
 }
 
 # Tell nginx to reopen logs
 # http://nginx.org/en/docs/control.html#logs
 reopen_logs() {
+       local oldbin_pidfile="${pidfile}.oldbin"
+
+       if [ -f $oldbin_pidfile ]; then
+               show "Reopening $svname (oldbin) logs"
+               killproc -p $oldbin_pidfile $prog -USR1
+       fi
+
        show "Reopening $svname logs"
        killproc -p $pidfile $prog -USR1
 }
This page took 0.482661 seconds and 4 git commands to generate.