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