PIDFILE=/var/run/postlicyd/pid
CONF=/etc/pfixtools/postlicyd.conf
-[ -z $1 ] && die "usage $0 (start|stop|reload)"
+[ -z $1 ] && die "usage $0 (start|stop|reload|check-conf)"
+
+mkdir -p `dirname "$PIDFILE"` || die "Can't create $PIDFILE"
+
+do_checkconf() {
+ $POSTLICYD -c "$CONF"
+ return "$?"
+}
case "$1" in
start)
- $POSTLICYD -p "$PIDFILE" "$CONF"
+ echo "Starting postlicyd..."
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $POSTLICYD --text > /dev/null || die "Already running"
+ do_checkconf || die "Invalid configuration"
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $POSTLICYD -- -p "$PIDFILE" "$CONF" || die "Failed"
+ echo "Started"
;;
stop)
- kill `cat $PIDFILE`
+ echo "Stopping postlicyd..."
+ start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name "postlicyd"
+ case "$?" in
+ 0) echo "Stopped" ;;
+ 1) die "Nothing to stop" ;;
+ 2) die "Cannot stop process" ;;
+ esac
;;
reload)
- kill -HUP `cat $PIDFILE`
+ echo "Reloading postlicyd..."
+ do_checkconf || die "Invalid configuration"
+ start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name postlicyd
+ ;;
+
+ check-conf)
+ do_checkconf || die "Invalid configuration"
;;
*)
- die "usage $0 (start|stop|reload)"
+ die "usage $0 (start|stop|reload|check-conf)"
;;
esac