Discussion:
Debian Initscripts
Igor Morgado
2009-06-25 16:21:52 UTC
Permalink
Ladies and gentlemen...

Here goes my 2c, they are initscripts to be used in debian and things like
debian, meant to be added in next release (i have pasted the code in body
cause i dont know if the list allow attachments, anyway I have attached the
codes too)

============================================================================
init/bongo-manager.default.debian.in
============================================================================
# Defaults for bongoproject initscript
# sourced by /etc/init.d/bongo-manager
# It should be installed at /etc/default/bongo-manager
#
# This is a POSIX shell fragment
#

# Additional options that are passed to the Daemon.
DAEMON_ARGS="-d -k"



============================================================================
init/bongo-manager.init.debian.in
============================================================================
#!/bin/sh
### BEGIN INIT INFO
# Provides: bongo mail-transport-agent
# Required-Start: $local_fs $remote_fs $syslog $named $network $time
# Required-Stop: $local_fs $remote_fs $syslog $named $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Should-Start: slapd
# Should-Stop: slapd
# Short-Description: Start and stops Bongo
# Description: Bongo collaboration system, visit:
# http://www.bongo-project.com
### END INIT INFO

#
# Author: Igor Morgado <igor-***@public.gmane.org>
#

# set -e

# Default VARS
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Bongo Colaborative Suite"
NAME=bongo-manager
SCRIPTNAME=/etc/init.d/$NAME
BONGO_DIR=@prefix@
BONGO_BIN=@prefix@/sbin
BONGO_PROCLIST="bongomanager bongodmc bongostore bongoqueue bongosmtp
bongoimap bongopop3 bongoantispam bongoavirus bongocalagent bongomailprox
bongorules bongopluspack bongoconnmgr"
PIDFILE="$BONGO_DIR/var/bongo/work/bongomanager.pid"
DAEMON=$BONGO_BIN/$NAME
DAEMON_ARGS="-d -k"

# 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 do_start() {
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started

start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON
--test > /dev/null \
|| return 1
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON
-- $DAEMON_ARGS \
|| return 2
}

function do_stop() {
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred

start-stop-daemon --verbose --stop --quiet --retry=TERM/30/KILL/5
--pidfile $PIDFILE --name $NAME

RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2

return "$RETVAL"
}

function do_reload() {
#
# If the daemon can reload its configuration without
# restarting (for example, when it is sent a SIGHUP),
# then implement that here.
#
start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE
--name $NAME

return 0
}

case "$1" in
start)

[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"

do_start

case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac

;;

stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && 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

exit 0

Loading...