We have not checked for this KEYWORD for a long time now, so this is a complete noop, and thus no PORTREVISION bump. Removing it at this point is mostly for pedantic reasons, and partly to avoid perpetuating this anachronism by copy and paste to future scripts.
151 lines
3.7 KiB
Bash
151 lines
3.7 KiB
Bash
#!/bin/sh
|
|
# $FreeBSD$
|
|
|
|
# PROVIDE: vncreflector
|
|
# REQUIRE: DAEMON
|
|
# BEFORE: LOGIN
|
|
# KEYWORD: shutdown
|
|
|
|
_etcdir="%%PREFIX%%/etc/vncreflector"
|
|
|
|
# Define these vncreflector_* variables in one of these files:
|
|
# /etc/rc.conf
|
|
# /etc/rc.conf.local
|
|
# /etc/rc.conf.d/vncreflector
|
|
#
|
|
# DO NOT CHANGE THESE DEFAULT VALUES HERE
|
|
#
|
|
vncreflector_enable=${vncreflector_enable-"NO"}
|
|
vncreflector_hostinfofile=${vncreflector_hostinfofile-"${_etcdir}/hostinfo"}
|
|
vncreflector_passwdfile=${vncreflector_passwdfile-"${_etcdir}/passwd"}
|
|
vncreflector_ports=${vncreflector_ports-"5999"}
|
|
vncreflector_requirepasswdfile=${vncreflector_requirepasswdfile-"YES"}
|
|
vncreflector_flags=${vncreflector_flags-"-q"}
|
|
vncreflector_pidfile=${vncreflector_pidfile-"/var/run/vncreflector.pid"}
|
|
vncreflector_logfile=${vncreflector_logfile-"/var/log/vncreflector.log"}
|
|
vncreflector_activefile=${vncreflector_logfile-"/var/log/vncreflector.log"}
|
|
vncreflector_addr=${vncreflector_addr-""}
|
|
#vncreflector_addr_5999=
|
|
|
|
. %%RC_SUBR%%
|
|
|
|
name="vncreflector"
|
|
rcvar=`set_rcvar`
|
|
start_cmd="vncreflector_start"
|
|
stop_cmd="vncreflector_stop"
|
|
command="%%PREFIX%%/bin/${name}"
|
|
# Disconnect from host, reread host file, reconnect.
|
|
sig_reload=USR2
|
|
|
|
vncreflector_start()
|
|
{
|
|
_started=0
|
|
|
|
echo -n "starting ${name}:"
|
|
|
|
rc_flags=${vncreflector_flags}
|
|
|
|
for _port in ${vncreflector_ports}; do
|
|
echo -n " ${_port}"
|
|
pidfile="${vncreflector_pidfile}.${_port}"
|
|
rc_pid=$(check_pidfile $pidfile $command)
|
|
if [ -z "$rc_fast" -a -n "$rc_pid" ]; then
|
|
echo -n "!"
|
|
continue
|
|
fi
|
|
|
|
_hostinfofile=""
|
|
_passwdfile=""
|
|
# if we only have one port, try the bare hostinfo
|
|
# before appending the port number.
|
|
if [ "${vncreflector_ports}" = "${_port}" -a \
|
|
-r "${vncreflector_hostinfofile}" ]; then
|
|
_hostinfofile=${vncreflector_hostinfofile}
|
|
# if we found a bare hostinfo file, we'll also
|
|
# look for a bare passwd file
|
|
if [ -r "${vncreflector_passwdfile}" ]; then
|
|
_passwdfile=${vncreflector_passwdfile}
|
|
fi
|
|
fi
|
|
if [ -z "${_hostinfofile}" ]; then
|
|
_hostinfofile="${vncreflector_hostinfofile}.${_port}"
|
|
fi
|
|
if [ ! -r "${_hostinfofile}" ]; then
|
|
echo -n "!hostfile"
|
|
continue
|
|
fi
|
|
# if we don't have a passwdfile yet, try to use a
|
|
# port-specific one and fall back to trying a global one
|
|
if [ -z "${_passwdfile}" ]; then
|
|
_passwdfile=${vncreflector_passwdfile}
|
|
if [ -r ${_passwdfile}.${_port} ]; then
|
|
_passwdfile="${_passwdfile}.${_port}"
|
|
fi
|
|
fi
|
|
if [ -r "${_passwdfile}" ]; then
|
|
_passwdarg="-p${_passwdfile}"
|
|
else
|
|
if checkyesno vncreflector_requirepasswdfile; then
|
|
if [ -z "$rc_force" ]; then
|
|
warn "missing passwd file for ${_port}."
|
|
return 1
|
|
else
|
|
echo -n "!passwdfile"
|
|
continue
|
|
fi
|
|
fi
|
|
_passwdarg=""
|
|
fi
|
|
if [ -z "${vncreflector_logfile}" ]; then
|
|
_logfile="/dev/null"
|
|
else
|
|
_logfile="${vncreflector_logfile}.${_port}"
|
|
fi
|
|
eval _addr=\$vncreflector_addr_${port}
|
|
if [ -z "${_addr}" ]; then
|
|
_addr=${vncreflector_addr}
|
|
fi
|
|
if [ -z "${_addr}" ]; then
|
|
unset _addr
|
|
fi
|
|
|
|
_doit="\
|
|
${command} ${rc_flags} \
|
|
-i ${vncreflector_pidfile} \
|
|
-l ${_port} \
|
|
-g ${_logfile} \
|
|
${_addr+-l $_addr }${_passwdfile+-p $_passwdfile } \
|
|
${_hostinfofile}"
|
|
debug "vncreflector_start: _doit: $_doit"
|
|
eval $_doit
|
|
_started=`expr 1 + ${_started}`
|
|
done
|
|
if [ $_started -lt 1 ]; then
|
|
return 1
|
|
fi
|
|
echo "."
|
|
}
|
|
|
|
vncreflector_stop()
|
|
{
|
|
echo -n "stopping ${name}: "
|
|
|
|
_pids=""
|
|
|
|
for _port in ${vncreflector_ports}; do
|
|
echo -n " ${_port}"
|
|
pidfile="${vncreflector_pidfile}.${_port}"
|
|
rc_pid=$(check_pidfile $pidfile $command)
|
|
if [ -n "$rc_pid" ]; then
|
|
kill $sig_stop $rc_pid
|
|
_pids="${_pids} ${rc_pid}"
|
|
else
|
|
warn "no server for port ${_port}"
|
|
fi
|
|
done
|
|
echo "."
|
|
wait_for_pids $_pids
|
|
}
|
|
|
|
load_rc_config $name
|
|
run_rc_command $*
|