Created
July 28, 2014 03:14
-
-
Save d-bo/23a5f041943ad98a48b7 to your computer and use it in GitHub Desktop.
nginx rc.d init script freebsd
This file contains hidden or 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" |
Thank you so much!
Thank you so much!
yo
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for this!