Hi Guys
I have recently been trying to install WowzaMediaServer from the source because the port in the tree is both old, and unavailable as it requires a binary installer that has been removed.
The server itself works fine, but only when run in standalone mode, and there is no rc script provided that is compatible with FreeBSD.
I have been trying to modify the rc script provided with zero results but that is to be expected as this is the first time I have even looked inside an rc script. Below is the original, and them my work in progress, I am sure it is way off, but at least the paths are now correct, I know that much.
I have also tried using this as a template Porters Handbook, but I just made a mess.
If you have any advice for me that would be great
Thanks for your time 
Original rc script provided for CENTOS
My modified script, changes are bold:
I have recently been trying to install WowzaMediaServer from the source because the port in the tree is both old, and unavailable as it requires a binary installer that has been removed.
The server itself works fine, but only when run in standalone mode, and there is no rc script provided that is compatible with FreeBSD.
I have been trying to modify the rc script provided with zero results but that is to be expected as this is the first time I have even looked inside an rc script. Below is the original, and them my work in progress, I am sure it is way off, but at least the paths are now correct, I know that much.

I have also tried using this as a template Porters Handbook, but I just made a mess.
If you have any advice for me that would be great


Original rc script provided for CENTOS
Code:
#!/bin/bash
#
# Startup script for Wowza Media Server
#
# chkconfig: - 80 20
# description: Wowza Media Server is a media server
#
WMCOMMAND=${1}
FUNCTIONS_EXIST=false
if [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
FUNCTIONS_EXIST=true
fi
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
FUNCTIONS_EXIST=true
fi
if ! $FUNCTIONS_EXIST ; then
failure() {
return 0
}
success() {
return 0
}
fi
# define vars
RETVAL=0
WMSBASE_NAME=WowzaMediaServer
#WMSCONFIG_SCRIPT="/etc/WowzaMediaServer/$WMSBASE_NAME.conf"
WMSCONFIG_SCRIPT="/usr/local/WowzaMediaServer/bin/setenv.sh"
WMSLICENSE_FILE="/usr/local/WowzaMediaServer/conf/Server.license"
AMAZONEC2_INSTALL_SCRIPT="/usr/local/WowzaMediaServer/bin/AmazonEC2Install.sh"
WMSDAEMON_CMD=/usr/bin/WowzaMediaServerd
WMSPID_FILE="/var/run/$WMSBASE_NAME.pid"
WMSLOCK_FILE="/var/run/$WMSBASE_NAME"
SHUTDOWN_WAIT=20
[ -r "$WMSCONFIG_SCRIPT" ] && . "$WMSCONFIG_SCRIPT"
if ! test -f "${WMSLICENSE_FILE}" ; then
echo ""
echo "ERROR: Missing license file: (${WMSLICENSE_FILE})"
echo "You must first run Wowza Media Server 2 in "
echo "standalone mode to enter serial number. Execute the "
echo "following commands to run in standalone mode:"
echo ""
echo "cd /usr/local/WowzaMediaServer"
echo "./startup.sh"
echo ""
exit 0
fi
testjava=`which ${_EXECJAVA} 2>/dev/null`
if ! test -f "$testjava" ; then
echo ""
echo "ERROR: The Java command (${_EXECJAVA}) could not be found."
echo "Search path: $PATH"
echo "In most cases this problem can be fixed by adding a symbolic "
echo "link to the Java command in the /usr/bin directory. "
echo "To do this first execute the command \"which java\" to identify "
echo "the full path to the Java executable. Next, create a symbolic "
echo "link to this file with the command"
echo "\"ln -sf [path-to-java] /usr/bin/java\" where [path-to-java] is "
echo "the path returned by the \"which\" command."
echo ""
exit 0
fi
#
start() {
if [ -f $WMSPID_FILE ]; then
read kpid < $WMSPID_FILE
kill -9 $kpid
echo $"$WMSBASE_NAME is already running ($kpid): stopping"
rm -f $WMSPID_FILE
fi
echo -n $"$WMSBASE_NAME: starting"
#$AMAZONEC2_INSTALL_SCRIPT
$WMSDAEMON_CMD $WMSCONFIG_SCRIPT $WMSPID_FILE start >/dev/null 2>&1 &
success "$WMSBASE_NAME startup"
echo
touch $WMSLOCK_FILE
return 0
}
stop() {
if [ -f $WMSPID_FILE ]; then
echo -n $"$WMSBASE_NAME: stopping"
read kpid < $WMSPID_FILE
$WMSDAEMON_CMD $WMSCONFIG_SCRIPT $WMSPID_FILE stop >/dev/null 2>&1 &
let kwait=$SHUTDOWN_WAIT
count=0;
until [ `ps -p $kpid | grep -c $kpid` = '0' ] || [ $count -gt $kwait ]
do
echo -n -e "\nwaiting for processes to exit";
sleep 1
let count=$count+1;
done
if [ $count -gt $kwait ]; then
echo -n -e "\nkilling processes which didn't stop after $SHUTDOWN_WAIT seconds"
kill -9 $kpid
fi
rm -f $WMSPID_FILE
success "$WMSBASE_NAME shutdown"
else
echo -n $"$WMSBASE_NAME: not running"
fi
echo
rm -f $WMSLOCK_FILE
return 0
}
localstatus() {
if [ -f $WMSLOCK_FILE ]; then
echo "$WMSBASE_NAME started"
else
echo "$WMSBASE_NAME stopped"
fi
RETVAL=0
}
# See how we were called.
case "$WMCOMMAND" in
start)
start
;;
stop)
stop
;;
status)
localstatus
;;
restart)
stop
start
;;
*)
echo $"Usage: $WMSBASE_NAME {start|stop|restart|status}"
exit 1
esac
exit $RETVAL
My modified script, changes are bold:
Code:
#[B]!/bin/sh[/B]
#
# Startup script for Wowza Media Server
#
# chkconfig: - 80 20
# description: Wowza Media Server is a media server
#
WMCOMMAND=${1}
FUNCTIONS_EXIST=false
if [ -f [B]/etc/rc.subr[/B] ] ; then
. [B]/etc/rc.subr[/B]
FUNCTIONS_EXIST=true
fi
[color="Red"]#if [ -f /etc/rc.d/functions ] ; then
# . /etc/rc.d/functions
# FUNCTIONS_EXIST=true
#fi[/color]
if ! $FUNCTIONS_EXIST ; then
failure() {
return 0
}
success() {
return 0
}
fi
# define vars
RETVAL=0
WMSBASE_NAME=WowzaMediaServer
#WMSCONFIG_SCRIPT="/etc/WowzaMediaServer/$WMSBASE_NAME.conf"
WMSCONFIG_SCRIPT="/usr/local/WowzaMediaServer/bin/setenv.sh"
WMSLICENSE_FILE="/usr/local/WowzaMediaServer/conf/Server.license"
AMAZONEC2_INSTALL_SCRIPT="/usr/local/WowzaMediaServer/bin/AmazonEC2Install.sh"
[B]WMSDAEMON_CMD=/usr/local/WowzaMediaServer/bin/WowzaMediaServerd[/B]
WMSPID_FILE="/var/run/$WMSBASE_NAME.pid"
WMSLOCK_FILE="/var/run/$WMSBASE_NAME"
SHUTDOWN_WAIT=20
[ -r "$WMSCONFIG_SCRIPT" ] && . "$WMSCONFIG_SCRIPT"
if ! test -f "${WMSLICENSE_FILE}" ; then
echo ""
echo "ERROR: Missing license file: (${WMSLICENSE_FILE})"
echo "You must first run Wowza Media Server 2 in "
echo "standalone mode to enter serial number. Execute the "
echo "following commands to run in standalone mode:"
echo ""
echo "cd /usr/local/WowzaMediaServer"
echo "./startup.sh"
echo ""
exit 0
fi
testjava=`which ${_EXECJAVA} 2>/dev/null`
if ! test -f "$testjava" ; then
echo ""
echo "ERROR: The Java command (${_EXECJAVA}) could not be found."
echo "Search path: $PATH"
echo "In most cases this problem can be fixed by adding a symbolic "
echo "link to the Java command in the /usr/bin directory. "
echo "To do this first execute the command \"which java\" to identify "
echo "the full path to the Java executable. Next, create a symbolic "
echo "link to this file with the command"
echo "\"ln -sf [path-to-java] /usr/bin/java\" where [path-to-java] is "
echo "the path returned by the \"which\" command."
echo ""
exit 0
fi
#
start() {
if [ -f $WMSPID_FILE ]; then
read kpid < $WMSPID_FILE
kill -9 $kpid
echo $"$WMSBASE_NAME is already running ($kpid): stopping"
rm -f $WMSPID_FILE
fi
echo -n $"$WMSBASE_NAME: starting"
#$AMAZONEC2_INSTALL_SCRIPT
$WMSDAEMON_CMD $WMSCONFIG_SCRIPT $WMSPID_FILE start >/dev/null 2>&1 &
success "$WMSBASE_NAME startup"
echo
touch $WMSLOCK_FILE
return 0
}
stop() {
if [ -f $WMSPID_FILE ]; then
echo -n $"$WMSBASE_NAME: stopping"
read kpid < $WMSPID_FILE
$WMSDAEMON_CMD $WMSCONFIG_SCRIPT $WMSPID_FILE stop >/dev/null 2>&1 &
let kwait=$SHUTDOWN_WAIT
count=0;
until [ `ps -p $kpid | grep -c $kpid` = '0' ] || [ $count -gt $kwait ]
do
echo -n -e "\nwaiting for processes to exit";
sleep 1
let count=$count+1;
done
if [ $count -gt $kwait ]; then
echo -n -e "\nkilling processes which didn't stop after $SHUTDOWN_WAIT seconds"
kill -9 $kpid
fi
rm -f $WMSPID_FILE
success "$WMSBASE_NAME shutdown"
else
echo -n $"$WMSBASE_NAME: not running"
fi
echo
rm -f $WMSLOCK_FILE
return 0
}
localstatus() {
if [ -f $WMSLOCK_FILE ]; then
echo "$WMSBASE_NAME started"
else
echo "$WMSBASE_NAME stopped"
fi
RETVAL=0
}
# See how we were called.
case "$WMCOMMAND" in
start)
start
;;
stop)
stop
;;
status)
localstatus
;;
restart)
stop
start
;;
*)
echo $"Usage: $WMSBASE_NAME {start|stop|restart|status}"
exit 1
esac
exit $RETVAL