| #!/sbin/openrc-run | |
| description="Nginx http and reverse proxy server" | |
| extra_commands="checkconfig" | |
| extra_started_commands="reload reopen upgrade" | |
| cfgfile=${cfgfile:-/etc/nginx/nginx.conf} | |
| pidfile=/var/run/nginx.pid | |
| command=/usr/sbin/%%DAEMON%% | |
| command_args="-c $cfgfile" | |
| required_files="$cfgfile" | |
| depend() { | |
| need net | |
| use dns logger netmount | |
| } | |
| start_pre() { | |
| $command $command_args -t -q | |
| } | |
| checkconfig() { | |
| ebegin "Checking $RC_SVCNAME configuration" | |
| start_pre | |
| eend $? | |
| } | |
| reload() { | |
| ebegin "Reloading $RC_SVCNAME configuration" | |
| start_pre && start-stop-daemon --signal HUP --pidfile $pidfile | |
| eend $? | |
| } | |
| reopen() { | |
| ebegin "Reopening $RC_SVCNAME log files" | |
| start-stop-daemon --signal USR1 --pidfile $pidfile | |
| eend $? | |
| } | |
| upgrade() { | |
| start_pre || return 1 | |
| ebegin "Upgrading $RC_SVCNAME binary" | |
| einfo "Sending USR2 to old binary" | |
| start-stop-daemon --signal USR2 --pidfile $pidfile | |
| einfo "Sleeping 3 seconds before pid-files checking" | |
| sleep 3 | |
| if [ ! -f $pidfile.oldbin ]; then | |
| eerror "File with old pid ($pidfile.oldbin) not found" | |
| return 1 | |
| fi | |
| if [ ! -f $pidfile ]; then | |
| eerror "New binary failed to start" | |
| return 1 | |
| fi | |
| einfo "Sleeping 3 seconds before WINCH" | |
| sleep 3 ; start-stop-daemon --signal 28 --pidfile $pidfile.oldbin | |
| einfo "Sending QUIT to old binary" | |
| start-stop-daemon --signal QUIT --pidfile $pidfile.oldbin | |
| einfo "Upgrade completed" | |
| eend $? "Upgrade failed" | |
| } |