From cdda7e3aba7adaef12c3d598c494988820a501f1 Mon Sep 17 00:00:00 2001 From: Marcin Deranek Date: Fri, 30 Jun 2023 16:08:08 +0200 Subject: www-servers/nginx fork with updated lua modules --- www-servers/nginx/files/nginx.initd-r4 | 92 ++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 www-servers/nginx/files/nginx.initd-r4 (limited to 'www-servers/nginx/files/nginx.initd-r4') diff --git a/www-servers/nginx/files/nginx.initd-r4 b/www-servers/nginx/files/nginx.initd-r4 new file mode 100644 index 0000000..31f79ba --- /dev/null +++ b/www-servers/nginx/files/nginx.initd-r4 @@ -0,0 +1,92 @@ +#!/sbin/openrc-run +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +extra_commands="configtest" +extra_started_commands="upgrade reload" + +description="Robust, small and high performance http and reverse proxy server" +description_configtest="Run nginx' internal config check." +description_upgrade="Upgrade the nginx binary without losing connections." +description_reload="Reload the nginx configuration without losing connections." + +NGINX_CONFIGFILE=${NGINX_CONFIGFILE:-/etc/nginx/nginx.conf} + +command="/usr/sbin/nginx" +command_args="-c \"${NGINX_CONFIGFILE}\"" +start_stop_daemon_args=${NGINX_SSDARGS:-"--wait 1000"} +pidfile=${NGINX_PIDFILE:-/run/nginx.pid} +user=${NGINX_USER:-nginx} +group=${NGINX_GROUP:-nginx} +retry=${NGINX_TERMTIMEOUT:-"TERM/60/KILL/5"} + +depend() { + need net + use dns logger netmount +} + +start_pre() { + if [ "${RC_CMD}" != "restart" ]; then + configtest || return 1 + fi +} + +stop_pre() { + if [ "${RC_CMD}" = "restart" ]; then + configtest || return 1 + fi +} + +stop_post() { + rm -f ${pidfile} +} + +reload() { + configtest || return 1 + ebegin "Refreshing nginx' configuration" + start-stop-daemon --signal SIGHUP --pidfile "${pidfile}" + eend $? "Failed to reload nginx" +} + +upgrade() { + configtest || return 1 + ebegin "Upgrading nginx" + + einfo "Sending USR2 to old binary" + start-stop-daemon --signal SIGUSR2 --pidfile "${pidfile}" + + einfo "Sleeping 3 seconds before pid-files checking" + sleep 3 + + if [ ! -f "${pidfile}.oldbin" ]; then + eerror "File with old pid 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 + # Cannot send "WINCH" using start-stop-daemon yet, https://bugs.gentoo.org/604986 + kill -WINCH $(cat "${pidfile}.oldbin") + + einfo "Sending QUIT to old binary" + start-stop-daemon --signal SIGQUIT --pidfile "${pidfile}.oldbin" + + einfo "Upgrade completed" + eend $? "Upgrade failed" +} + +configtest() { + ebegin "Checking nginx' configuration" + ${command} -c "${NGINX_CONFIGFILE}" -t -q + + if [ $? -ne 0 ]; then + ${command} -c "${NGINX_CONFIGFILE}" -t + fi + + eend $? "failed, please correct errors above" +} -- cgit v1.2.3