freebsd-ports/www/kcgi/files/kfcgi.in
2021-04-06 16:31:13 +02:00

72 lines
1.8 KiB
Bash

#!/bin/sh
# PROVIDE: kfcgi
# REQUIRE: LOGIN
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf to enable kfcgi:
#
# kfcgi_enable="YES"
#
# Use kfcgi_prog to set the worker process of kfcgi.
#
# The kfcgi rc.d script supports multiple profiles. When profiles are
# specified, the non-profile-specific parameters become defaults.
#
# Example:
#
# kfcgi_enable="YES"
# kfcgi_profiles="server1 server2"
# kfcgi_server1_flags="-s /var/run/kfcgi.server1.sock"
# kfcgi_server1_prog="/usr/local/bin/server1prog"
# kfcgi_server2_flags="-s /var/run/kfcgi.server2.sock"
# kfcgi_server2_prog="/usr/local/bin/server2prog"
. /etc/rc.subr
name="kfcgi"
rcvar="kfcgi_enable"
extra_commands="reload"
load_rc_config $name
: ${kfcgi_enable:="NO"}
procname="%%PREFIX%%/sbin/${name}"
command="/usr/sbin/daemon"
pidprefix="/var/run/${name}"
pidfile="${pidprefix}.pid"
if [ -n "$2" ]; then
profile="$2"
if [ -n "${kfcgi_profiles}" ]; then
pidfile="${pidprefix}.${profile}.pid"
eval kfcgi_enable="\${kfcgi_${profile}_enable:-${kfcgi_enable}}"
eval kfcgi_flags="\${kfcgi_${profile}_flags:-${kfcgi_flags}}"
eval kfcgi_prog="\${kfcgi_${profile}_prog:-${kfcgi_prog}}"
else
echo "$0: extra argument ignored"
fi
else
if [ -n "${kfcgi_profiles}" -a -n "$1" ]; then
for profile in ${kfcgi_profiles}; do
echo "===> kfcgi profile: ${profile}"
%%PREFIX%%/etc/rc.d/kfcgi $1 ${profile}
retcode="$?"
if [ "0${retcode}" -ne 0 ]; then
failed="${profile} (${retcode}) ${failed:-}"
else
success="${profile} ${success:-}"
fi
done
exit 0
fi
fi
# run_rc_command would send ${name}_flags as parameters to $command (daemon).
# This ensures they are actually passed to kfcgi instead.
actual_kfcgi_flags="${kfcgi_flags}"
kfcgi_flags=""
command_args="-T ${name} -p ${pidfile} -- ${procname} -d ${actual_kfcgi_flags} -- ${kfcgi_prog}"
run_rc_command "$1"