mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2025-12-21 21:17:37 -08:00
nginx.eclass prefers fastcgi_params over fastcgi.conf for consistency.
For some reason, when I was writing nginx.eclass I missed the fact that
fastcgi.conf has one extra `fastcgi_param` vs fastcgi_params. This
commit uses fastcgi.conf as new fastcgi_params by renaming the former to
the latter.
In 8481acdc2c34e960f08cd90ce09068d791e42901[1] ("www-servers/nginx: use
default start/stop initd functions"), the custom start() was removed,
where the `-c` and `-g` cmdline parameters were hardcoded, which regressed
services that were symlinked to /etc/init.d/nginx.
This commit fixes both issues at the same time to avoid revbumping
ebuilds twice. KEYWORDS were not dropped because this fixes regressions.
[1]: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8481acdc2c34e960f08cd90ce09068d791e42901
Closes: https://bugs.gentoo.org/966799
Closes: https://bugs.gentoo.org/966798
Signed-off-by: Zurab Kvachadze <zurabid2016@gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/44853
Closes: https://github.com/gentoo/gentoo/pull/44853
Signed-off-by: Sam James <sam@gentoo.org>
92 lines
2.8 KiB
Plaintext
92 lines
2.8 KiB
Plaintext
#!/sbin/openrc-run
|
|
# Copyright 1999-2025 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
name="NGINX"
|
|
description="Robust, small and high performance HTTP and reverse proxy server"
|
|
description_configtest="Run NGINX's 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/${RC_SVCNAME}.conf}
|
|
NGINX_MAXWAITTIME=${NGINX_MAXWAITTIME:-3}
|
|
|
|
command="/usr/sbin/nginx"
|
|
start_stop_daemon_args=${NGINX_SSDARGS:-"--wait 1000"}
|
|
pidfile="/run/${RC_SVCNAME}/${RC_SVCNAME}.pid"
|
|
user=${NGINX_USER:-nginx}
|
|
group=${NGINX_GROUP:-nginx}
|
|
retry=${NGINX_TERMTIMEOUT:-"TERM/60/KILL/5"}
|
|
command_args="-c \"${NGINX_CONFIGFILE}\" -g 'pid ${pidfile};'"
|
|
|
|
extra_commands="configtest"
|
|
extra_started_commands="upgrade reload"
|
|
|
|
depend() {
|
|
use net dns logger netmount
|
|
}
|
|
|
|
start_pre() {
|
|
checkpath -d -m 0755 -o 0:0 "/run/${RC_SVCNAME}"
|
|
}
|
|
|
|
stop_pre() {
|
|
if [ "${RC_CMD}" = "restart" ]; then
|
|
configtest || return 1
|
|
fi
|
|
}
|
|
|
|
reload() {
|
|
ebegin "Refreshing NGINX's configuration"
|
|
start-stop-daemon --signal SIGHUP --pidfile "${pidfile}"
|
|
eend $? "Failed to reload NGINX's configuration, please correct the errors above"
|
|
}
|
|
|
|
upgrade() {
|
|
einfo "Upgrading NGINX"
|
|
configtest || { eerror "Unable to upgrade NGINX: Configuration check failed";
|
|
return 1; }
|
|
|
|
einfo "Sending USR2 signal to the old binary"
|
|
start-stop-daemon --signal SIGUSR2 --pidfile "${pidfile}"
|
|
|
|
ebegin "Waiting up to ${NGINX_MAXWAITTIME} seconds for NGINX to upgrade"
|
|
local startdate pidfile_found
|
|
pidfile_found=0
|
|
endtime=$(("$(date +%s)" + NGINX_MAXWAITTIME))
|
|
while [ "$(date +%s)" -le "${endtime}" ]; do
|
|
if [ -f "${pidfile}" ] && [ -f "${pidfile}.oldbin" ]; then
|
|
pidfile_found=1
|
|
break
|
|
fi
|
|
sleep 1
|
|
done
|
|
|
|
[ "${pidfile_found}" = 1 ]
|
|
if ! eend $?; then
|
|
eerror "NGINX has failed to upgrade in time. This might have been caused either"
|
|
eerror "by a configuration error, uncaught by the configuration check, or, more"
|
|
eerror "likely, by NGINX taking more time to load the configuration than is"
|
|
eerror "allowed by the NGINX_MAXWAITTIME variable"
|
|
eerror "The maximum waiting time can be adjusted by setting the NGINX_MAXWAITTIME"
|
|
eerror "variable to a larger value in /etc/conf.d/nginx"
|
|
return 1
|
|
fi
|
|
|
|
einfo "Sending QUIT signal to the old binary"
|
|
start-stop-daemon --signal SIGQUIT --pidfile "${pidfile}.oldbin" ||
|
|
{ eerror "The old NGINX binary may not have been stopped properly: Sending QUIT signal failed";
|
|
return 1; }
|
|
|
|
einfo "The upgrade has completed successfuly"
|
|
}
|
|
|
|
configtest() {
|
|
ebegin "Checking NGINX's configuration"
|
|
"${command}" -c "${NGINX_CONFIGFILE}" -t
|
|
if ! eend $?; then
|
|
eerror "Configuration check failed, please correct the errors above"
|
|
return 1
|
|
fi
|
|
}
|