On 6-Nov-07, at 5:06 PM, Jindan Zhou wrote:

Yeah, it would be nice if some one could donate their linux shell script, so
that it can be installed as a linux service, too.

Here's mine. This needs work... It starts, but doesn't yet stop (PIDs not seen right I guess, haven't looked much at it yet.)

I've installed:
- the conf files and account.xml in /etc/caldavd
- the actual software in /opt/calendarserver/ which includes:
/opt/calendarserver/CalDAVTester, /opt/calendarserver/ CalendarServer, /opt/calendarserver/Twisted, and so on,
- the data (calendars themselves) in /var/cache/calendarserver

At the moment it's running as root, (CALUSER=root) so I don't have to worry about any permission issues. The init.d script is taken from some random script in my init.d directory, running Ubuntu.

If I happened to be set up for svn, I'd post it to the official code, but I leave it for someone else to do, as I'm really just a good amateur hack! =-)

Cheers,
David Szego.

-----------
/etc/init.d/calendarserver
-----------

#!/bin/sh
# Apple CalendarServer startup script, taken from an Ubuntu script.

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Apple Calendar Server"
NAME=calendarserver
DAEMON=/opt/calendarserver/CalendarServer/run
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
CACHEDIR=/var/cache/$NAME
CALUSER=root
CALOPTIONS=-d

#
#       Function that starts the daemon/service.
#
d_start() {
        start-stop-daemon --start --quiet \
                --chuid $CALUSER \
                --pidfile $PIDFILE \
                --exec $DAEMON \
                --background \
                --make-pidfile \
                -- \
                $CALOPTIONS
}

d_start_direct() {
        start-stop-daemon --start --quiet \
                --chuid $CALUSER \
                --pidfile $PIDFILE \
                --exec $DAEMON \
                -- \
                $CALOPTIONS
}

#       Function that stops the daemon/service.
#
d_stop() {
        start-stop-daemon --stop --pidfile $PIDFILE --name $NAME
}

#
#       Function that sends a SIGHUP to the daemon/service.
#
d_reload() {
        start-stop-daemon --stop --quiet --pidfile $PIDFILE \
                --name $NAME --signal 1
}

case "$1" in
  start)
        echo -n "Starting $DESC"
        d_start
        echo "."
        ;;
  stop)
        echo -n "Stopping $DESC"
        d_stop
        echo "."
        ;;
  restart|force-reload)
        #
# If the "reload" option is implemented, move the "force-reload" # option to the "reload" entry above. If not, "force- reload" is
        #       just the same as "restart".
        #
        echo -n "Restarting $NAME"
        d_stop
        sleep 1
        d_start
        echo "."
        ;;
  *)
# echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force- reload}" >&2
        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

exit 0

-----------------

_______________________________________________
calendarserver-users mailing list
calendarserver-users@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo/calendarserver-users

Reply via email to