-
-
Save suryansh011/66395a655879b2b9674dcf573fb63318 to your computer and use it in GitHub Desktop.
nginx rc.d init script freebsd
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# if compiled from sources | |
# place this file inside /usr/local/etc/rc.d | |
# point _pidfrefix where nginx holds pid file | |
. /etc/rc.subr | |
name="nginx" | |
rcvar=nginx_enable | |
start_precmd="nginx_precmd" | |
restart_precmd="nginx_checkconfig" | |
reload_precmd="nginx_checkconfig" | |
configtest_cmd="nginx_checkconfig" | |
gracefulstop_cmd="nginx_gracefulstop" | |
upgrade_precmd="nginx_checkconfig" | |
upgrade_cmd="nginx_upgrade" | |
command="/usr/local/nginx/sbin/nginx" | |
_pidprefix="/usr/local/nginx/logs" | |
pidfile="${_pidprefix}/${name}.pid" | |
_tmpprefix="/var/tmp/nginx" | |
required_files=/usr/local/nginx/conf/nginx.conf | |
extra_commands="reload configtest upgrade gracefulstop" | |
[ -z "$nginx_enable" ] && nginx_enable="NO" | |
[ -z "$nginxlimits_enable" ] && nginxlimits_enable="NO" | |
[ -z "$nginxlimits_args" ] && nginxlimits_args="-e -U www" | |
load_rc_config $name | |
if [ -n "$2" ]; then | |
profile="$2" | |
if [ "x${nginx_profiles}" != "x" ]; then | |
pidfile="${_pidprefix}/${nginx_pid_prefix}${profile}.pid" | |
eval nginx_configfile="\${nginx_${profile}_configfile:-}" | |
if [ "x${nginx_configfile}" = "x" ]; then | |
echo "You must define a configuration file (nginx_${profile}_configfile)" | |
exit 1 | |
fi | |
required_files="${nginx_configfile}" | |
eval nginx_enable="\${nginx_${profile}_enable:-${nginx_enable}}" | |
eval nginx_flags="\${nginx_${profile}_flags:-${nginx_flags}}" | |
eval nginxlimits_enable="\${nginxlimits_${profile}_enable:-${nginxlimits_enable}}" | |
eval nginxlimits_args="\${nginxlimits_${profile}_args:-${nginxlimits_args}}" | |
nginx_flags="-c ${nginx_configfile} -g \"pid ${pidfile};\" ${nginx_flags}" | |
else | |
echo "$0: extra argument ignored" | |
fi | |
else | |
if [ "x${nginx_profiles}" != "x" -a "x$1" != "x" ]; then | |
for profile in ${nginx_profiles}; do | |
echo "===> nginx profile: ${profile}" | |
/usr/local/etc/rc.d/nginx $1 ${profile} | |
retcode="$?" | |
if [ "0${retcode}" -ne 0 ]; then | |
failed="${profile} (${retcode}) ${failed:-}" | |
else | |
success="${profile} ${success:-}" | |
fi | |
done | |
exit 0 | |
fi | |
fi | |
# tmpfs(5) | |
nginx_checktmpdir() | |
{ | |
if [ ! -d ${_tmpprefix} ] ; then | |
install -d -o www -g www -m 755 ${_tmpprefix} | |
fi | |
} | |
nginx_checkconfig() | |
{ | |
nginx_checktmpdir | |
echo "Performing sanity check on nginx configuration:" | |
eval ${command} ${nginx_flags} -t | |
} | |
nginx_gracefulstop() | |
{ | |
echo "Performing a graceful stop:" | |
sig_stop="QUIT" | |
run_rc_command ${rc_prefix}stop $rc_extra_args || return 1 | |
} | |
nginx_upgrade() | |
{ | |
echo "Upgrading nginx binary:" | |
reload_precmd="" | |
sig_reload="USR2" | |
run_rc_command ${rc_prefix}reload $rc_extra_args || return 1 | |
sleep 1 | |
echo "Stopping old binary:" | |
sig_reload="QUIT" | |
pidfile="$pidfile.oldbin" | |
run_rc_command ${rc_prefix}reload $rc_extra_args || return 1 | |
} | |
nginx_precmd() | |
{ | |
nginx_checkconfig | |
if checkyesno nginxlimits_enable | |
then | |
eval `/usr/bin/limits ${nginxlimits_args}` 2>/dev/null | |
else | |
return 0 | |
fi | |
} | |
run_rc_command "$1" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment