You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2010/09/16 20:49:41 UTC
svn commit: r997875 - /trafficserver/traffic/trunk/rc/trafficserver.in
Author: zwoop
Date: Thu Sep 16 18:49:41 2010
New Revision: 997875
URL: http://svn.apache.org/viewvc?rev=997875&view=rev
Log:
TS-211 Add support for FreeBSD in rc start/stop script.
This is just a "basic" implementation, the way the RC scripts
works in FreeBSD seems a little weird to say the least.
Modified:
trafficserver/traffic/trunk/rc/trafficserver.in
Modified: trafficserver/traffic/trunk/rc/trafficserver.in
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/rc/trafficserver.in?rev=997875&r1=997874&r2=997875&view=diff
==============================================================================
--- trafficserver/traffic/trunk/rc/trafficserver.in (original)
+++ trafficserver/traffic/trunk/rc/trafficserver.in Thu Sep 16 18:49:41 2010
@@ -39,6 +39,7 @@
TS_PACKAGE_NAME="@PACKAGE_NAME@"
TS_PACKAGE_VERSION="@PACKAGE_VERSION@"
TS_PACKAGE_BUGREPORT="@PACKAGE_BUGREPORT@"
+UNAME_S=$(uname -s)
if [ -e /etc/SuSE-release ]; then
DISTRIB_ID="suse"
@@ -52,8 +53,10 @@ elif [ -e /etc/debian_version ]; then
DISTRIB_ID="debian" # also exists on Ubuntu
elif [ -e /etc/slackware-version ]; then
DISTRIB_ID="slackware"
-elif [ $(uname -s) = "Darwin" ]; then
+elif [ "$UNAME_S" = "Darwin" ]; then
DISTRIB_ID="Darwin"
+elif [ "$UNAME_S" = "FreeBSD" ]; then
+ DISTRIB_ID="FreeBSD"
fi
# /usr/bin/lsb_release -rd # Ubuntu release & description info
@@ -94,12 +97,15 @@ PIDFILE_CHECK_RETRIES=${PIDFILE_CHECK_RE
STDOUTLOG=${STDOUTLOG:-$TS_BASE@exp_logdir@/traffic_server.stdout}
# stderr file of executable
STDERRLOG=${STDERRLOG:-$TS_BASE@exp_logdir@/traffic_server.stderr}
+
if [ -d /etc/rc.d/init.d ]; then
SCRIPTNAME=/etc/rc.d/init.d/$NAME # Fedora
elif [ -d /etc/init.d ]; then
SCRIPTNAME=/etc/init.d/$NAME # Ubuntu
-elif [ $DISTRIB_ID = "Darwin" ]; then
+elif [ "$DISTRIB_ID" = "Darwin" ]; then
SCRIPTNAME=$0 # Darwin
+elif [ "$DISTRIB_ID" = "FreeBSD" ]; then
+ SCRIPTNAME=/etc/rc.d/$NAME # FreeBSD
else
echo "This script needs to be ported to this OS"
exit 1
@@ -129,6 +135,9 @@ test -f /etc/rc.d/init.d/functions && .
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
test -f /lib/lsb/init-functions && . /lib/lsb/init-functions
+# FreeBSD
+test -f /etc/rc.subr && . /etc/rc.subr
+
#
# Fedora:
@@ -255,6 +264,13 @@ case "$1" in
echo "Starting ${TS_PACKAGE_NAME}"
launchctl list $TC_NAME > /dev/null 2>&1 && exit 0
launchctl submit -l $TC_NAME -p $TC_DAEMON -o $STDOUTLOG -e $STDERRLOG -- $TC_DAEMON_ARGS
+ elif [ "$DISTRIB_ID" = "FreeBSD" ]; then
+ echo "Starting ${TS_PACKAGE_NAME}"
+ name="$TC_NAME"
+ command="/usr/sbin/daemon"
+ command_args="$TC_DAEMON $TC_DAEMON_ARGS"
+ pidfile="$TC_PIDFILE"
+ run_rc_command "$1"
else
echo "This script needs to be ported to this OS"
exit 1
@@ -294,6 +310,20 @@ case "$1" in
echo "Stopping ${TS_NAME}"
kill $(cat $TS_PIDFILE)
rm -f ${TS_PIDFILE}
+ elif [ "$DISTRIB_ID" = "FreeBSD" ]; then
+ echo "Stopping ${TS_PACKAGE_NAME}"
+ if [ -e "$TC_PIDFILE" ]; then
+ kill $(cat $TC_PIDFILE)
+ rm -f ${TC_PIDFILE}
+ fi
+ if [ -e "$TM_PIDFILE" ]; then
+ kill $(cat $TM_PIDFILE)
+ rm -f ${TM_PIDFILE}
+ fi
+ name="$TC_NAME"
+ pidfile="$TC_PIDFILE"
+ run_rc_command "$1"
+ rm -f ${TS_PIDFILE}
else
echo "This script needs to be ported to this OS"
exit 1