#! /bin/sh
#
# $Id$
#
# PROVIDE: logserial
#
# Add the following line to /etc/rc.conf to enable logserial:
#
# logserial_enable="YES"
#
# logserial_command="/sbin/logserial"
# logserial_device_names="serial0"
#
# logserial_serial0_device="/dev/cuaa1"
# logserial_serial0_speed="19200"
# logserial_serial0_logfile="/var/log/pbx.log"
# logserial_serial0_pidfile="/var/run/logserial.pid"
#
. /etc/rc.subr
name="logserial"
rcvar=`set_rcvar`
start_cmd="logserial_start"
stop_cmd="logserial_stop"
[ -z "${logserial_enable}" ] && logserial_enable="NO"
[ -z "${logserial_command}" ] && logserial_command="/usr/local/bin/logserial"
#rc_debug="YES"
#
# init_variables _d
# Initialize the various variables for devname _d.
#
init_variables()
{
_d="$1"
if [ -z "$_d" ]; then
warn "init_variables: you must specify a devname"
return
fi
eval logserial_device=\"\$logserial_${_d}_device\"
[ -z "${logserial_device}" ] && logserial_device="/dev/cuaa0"
eval logserial_speed=\"\$logserial_${_d}_speed\"
[ -z "${logserial_speed}" ] && logserial_speed="9600"
eval logserial_logfile=\"\$logserial_${_d}_logfile\"
[ -z "${logserial_logfile}" ] && logserial_logfile="/var/log/${_d}.log"
eval logserial_pidfile=\"\$logserial_${_d}_pidfile\"
[ -z "${logserial_pidfile}" ] && logserial_pidfile="/var/run/logserial_${_d}.pid"
debug "$_d logserial_device: $logserial_device"
debug "$_d logserial_speed: $logserial_speed"
debug "$_d logserial_log: $logserial_logfile"
debug "$_d logserial_pid: $logserial_pidfile"
}
logserial_start()
{
echo -n 'Starting logserial:'
for _devname in ${logserial_device_names}
do
init_variables $_devname
if [ -f "${logserial_pidfile}" ]; then
if [ -n $(check_pidfile "${logserial_pidfile}" "${logserial_command}") ]; then
echo
echo -n "logserial already running for devname ${_devname}"
continue;
fi
fi
${logserial_command} -d ${logserial_device} -s ${logserial_speed} -l ${logserial_logfile} -p ${logserial_pidfile}
echo -n " ${_devname}"
done
echo '.'
}
logserial_stop()
{
echo -n 'Stopping logserial:'
for _devname in ${logserial_device_names}
do
init_variables $_devname
if [ -f "${logserial_pidfile}" ]; then
_pid=$(check_pidfile "${logserial_pidfile}" "${logserial_command}")
if [ ! -z "$_pid" ]; then
kill -${sig_stop:-TERM} $_pid
echo -n " ${_devname}"
else
echo
echo -n "logserial not running for devname ${_devname}?"
fi
else
echo
echo -n "logserial not running for devname ${_devname}? (${logserial_pidfile} doesn't exists)"
fi
done
echo '.'
}
load_rc_config $name
cmd="$1"
if [ $# -gt 0 ]; then
shift
fi
[ -n "$*" ] && logserial_device_names="$*"
run_rc_command "${cmd}"
syntax highlighted by Code2HTML, v. 0.9.1