Edgewall Software

Here is a simple script to start bitten-slave as a daemon on Ubuntu. The example file below should be saved as 'bitten-slave' in '/etc/init.d'. This has been tested on Ubuntu Hardy, however should run from any system with only minimal changes. You will need to change the DAEMON_ARGS variable to contain a URL which reflects your server.

#!/bin/sh
### BEGIN INIT INFO
# Provides:          bitten-slave
# required-start:    $all
# required-stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts trac's bitten-slave
# Description:       starts trac's bitten-slave using start-stop-daemon
### END INIT INFO

PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Bitten Slave"
NAME=bitten-slave
DAEMON=/usr/local/bin/$NAME
DAEMON_ARGS="-f /etc/bitten/slave.ini --interval=15 http://trac.example.org/MyProject/builds"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

#
# Function that starts the daemon/service
#
do_start()
{
	start-stop-daemon --start --quiet --background --make-pidfile --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS 
}

#
# Function that stops the daemon/service
#
do_stop()
{
	start-stop-daemon --stop --quiet --pidfile $PIDFILE --oknodo --retry 5
	RETVAL="$?"
	rm -f $PIDFILE
	return "$RETVAL"
}

case "$1" in
  start)
	log_daemon_msg "Starting $DESC" "$NAME"
	do_start
	case "$?" in
		0|1) log_end_msg 0 ;;
		2) log_end_msg 1 ;;
	esac
	;;
  stop)
	log_daemon_msg "Stopping $DESC" "$NAME"
	do_stop
	case "$?" in
		0|1) log_end_msg 0 ;;
		2) log_end_msg 1 ;;
	esac
	;;
  restart|force-reload)
	#
	# If the "reload" option is implemented then remove the
	# 'force-reload' alias
	#
	log_daemon_msg "Restarting $DESC" "$NAME"
	do_stop
	case "$?" in
	  0|1)
		do_start
		case "$?" in
			0) log_end_msg 0 ;;
			1) log_end_msg 1 ;; # Old process is still running
			*) log_end_msg 1 ;; # Failed to start
		esac
		;;
	  *)
	  	# Failed to stop
		log_end_msg 1
		;;
	esac
	;;
  *)
	echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
	exit 3
	;;
esac

:

To start the daemon manaually run the following.

sudo /etc/init.d/bitten-slave start

Likewise you can stop the daemon with

sudo /etc/init.d/bitten-slave stop

To enable the script so the bitten slave will automatically be started at boot time and stopped at shutdown make the script executable and enable it.

sudo chmod 755 /etc/init.d/bitten-slave
update-rc.d bitten-slave defaults

Ubuntu 12.04 LTS

After installing the trac-bitten-slave package you can use the script but you have to change:

DAEMON=/usr/local/bin/$NAME

to:

DAEMON=/usr/bin/$NAME
Last modified 6 years ago Last modified on May 12, 2012 5:12:20 PM