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