1 #!/bin/sh 2 ### BEGIN INIT INFO 3 # Provides: libcalendaring 4 # Required-Start: $network $local_fs 5 # Required-Stop: 6 # Default-Start: 2 3 4 5 7 # Default-Stop: 0 1 6 8 # Short-Description: <Enter a short description of the software> 9 # Description: <Enter a long description of the software> 10 # <...> 11 # <...> 12 ### END INIT INFO 13 14 # Author: Kolab Systems User <kolab@kolab.example.org> 15 16 # PATH should only include /usr/* if it runs after the mountnfs.sh script 17 PATH=/sbin:/usr/sbin:/bin:/usr/bin 18 DESC=libcalendaring # Introduce a short description here 19 NAME=libcalendaring # Introduce the short server's name here 20 DAEMON=/usr/sbin/libcalendaring # Introduce the server's location here 21 DAEMON_ARGS="" # Arguments to run the daemon with 22 PIDFILE=/var/run/$NAME.pid 23 SCRIPTNAME=/etc/init.d/$NAME 24 25 # Exit if the package is not installed 26 [ -x $DAEMON ] || exit 0 27 28 # Read configuration variable file if it is present 29 [ -r /etc/default/$NAME ] && . /etc/default/$NAME 30 31 # Load the VERBOSE setting and other rcS variables 32 . /lib/init/vars.sh 33 34 # Define LSB log_* functions. 35 # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. 36 . /lib/lsb/init-functions 37 38 # 39 # Function that starts the daemon/service 40 # 41 do_start() 42 { 43 # Return 44 # 0 if daemon has been started 45 # 1 if daemon was already running 46 # 2 if daemon could not be started 47 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ 48 || return 1 49 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ 50 $DAEMON_ARGS \ 51 || return 2 52 # Add code here, if necessary, that waits for the process to be ready 53 # to handle requests from services started subsequently which depend 54 # on this one. As a last resort, sleep for some time. 55 } 56 57 # 58 # Function that stops the daemon/service 59 # 60 do_stop() 61 { 62 # Return 63 # 0 if daemon has been stopped 64 # 1 if daemon was already stopped 65 # 2 if daemon could not be stopped 66 # other if a failure occurred 67 start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME 68 RETVAL="$?" 69 [ "$RETVAL" = 2 ] && return 2 70 # Wait for children to finish too if this is a daemon that forks 71 # and if the daemon is only ever run from this initscript. 72 # If the above conditions are not satisfied then add some other code 73 # that waits for the process to drop all resources that could be 74 # needed by services started subsequently. A last resort is to 75 # sleep for some time. 76 start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON 77 [ "$?" = 2 ] && return 2 78 # Many daemons don't delete their pidfiles when they exit. 79 rm -f $PIDFILE 80 return "$RETVAL" 81 } 82 83 # 84 # Function that sends a SIGHUP to the daemon/service 85 # 86 do_reload() { 87 # 88 # If the daemon can reload its configuration without 89 # restarting (for example, when it is sent a SIGHUP), 90 # then implement that here. 91 # 92 start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME 93 return 0 94 } 95 96 case "$1" in 97 start) 98 [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME" 99 do_start 100 case "$?" in 101 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 102 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; 103 esac 104 ;; 105 stop) 106 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" 107 do_stop 108 case "$?" in 109 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 110 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; 111 esac 112 ;; 113 status) 114 status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? 115 ;; 116 #reload|force-reload) 117 # 118 # If do_reload() is not implemented then leave this commented out 119 # and leave 'force-reload' as an alias for 'restart'. 120 # 121 #log_daemon_msg "Reloading $DESC" "$NAME" 122 #do_reload 123 #log_end_msg $? 124 #;; 125 restart|force-reload) 126 # 127 # If the "reload" option is implemented then remove the 128 # 'force-reload' alias 129 # 130 log_daemon_msg "Restarting $DESC" "$NAME" 131 do_stop 132 case "$?" in 133 0|1) 134 do_start 135 case "$?" in 136 0) log_end_msg 0 ;; 137 1) log_end_msg 1 ;; # Old process is still running 138 *) log_end_msg 1 ;; # Failed to start 139 esac 140 ;; 141 *) 142 # Failed to stop 143 log_end_msg 1 144 ;; 145 esac 146 ;; 147 *) 148 #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 149 echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 150 exit 3 151 ;; 152 esac 153 154 :