#!/bin/sh # # chkconfig: 345 90 30 # description: OpenPGP Public Key Server # processname: /usr/sbin/pksd # pidfile: /var/spool/postfix/pid/master.pid # config: /etc/pksd.conf #configuration options . /etc/init.d/functions WITHOUT_RC_COMPAT=1 PKSD=/usr/sbin/pksd PKSQUEUE=/usr/bin/pks-queue-run.sh CONFIG=/etc/pksd.conf DELAY=3 DB=/var/lib/pks PKSCLIENT=/usr/bin/pksclient LOCKFILE_PKSD=/var/lock/subsys/pksd LOCKFILE_PKS_QUEUE=/var/lock/subsys/pks-queue-run PIDFILE_PKSD=/var/run/pks/pksd PIDFILE_PKS_QUEUE=/var/run/pks/pks-queue-run SOCKET=pksd_socket USER="_pks" SU=/bin/su CHMOD=/bin/chmod SH=/bin/sh RETVAL=0 start() { if start-stop-daemon --start --test --quiet --pidfile "$PIDFILE_PKSD" \ --user $USER --exec "$PKSD" >/dev/null; then action "Starting pks daemon:" \ start-stop-daemon --start -b -m --pidfile "$PIDFILE_PKSD" -c "$USER" -x $PKSD -- $CONFIG else msg_already_running pksd passed "pksd startup" echo fi RETVAL=$? if [ $RETVAL = 0 ] ; then touch "$LOCKFILE_PKSD" $CHMOD 777 $DB/$SOCKET fi if start-stop-daemon --start --test --quiet --pidfile "$PIDFILE_PKS_QUEUE" \ --user $USER --exec $SH -- "$PKSQUEUE" >/dev/null; then action "Starting pks queue processing daemon:" \ start-stop-daemon --start -b -m --pidfile "$PIDFILE_PKS_QUEUE" -c "$USER" -x $SH -- $PKSQUEUE $CONFIG $DELAY else msg_already_running pks-queue passed "pks-queue startup" echo fi RETVAL=$? [ $RETVAL -ne 0 ] || touch "$LOCKFILE_PKS_QUEUE" return $RETVAL } stop() { action "Stoping pks daemon:" \ start-stop-daemon --stop --pidfile "$PIDFILE_PKSD" --user $USER RETVAL=$? [ "$RETVAL" -ne 0 ] || rm -f -- "$LOCKFILE_PKSD" "$PIDFILE_PKSD" action "Stoping pks queue processing daemon:" \ start-stop-daemon --stop --pidfile "$PIDFILE_PKS_QUEUE" --user "$USER" --exec $SH -- $PKSQUEUE RETVAL=$? [ "$RETVAL" -ne 0 ] || rm -f -- "$LOCKFILE_PKS_QUEUE" "$PIDFILE_PKS_QUEUE" return $RETVAL } initdb() { if ! [ -f $DB/db/num_keydb ] ; then $SU - $USER -c "$PKSCLIENT $DB/db create" >/dev/null 2>&1 fi RETVAL=$? return $RETVAL } setdb() { echo "Repairing pks database" $SU - $USER -c "$PKSCLIENT $DB/db recover >> $DB/recovery.log 2>&1" 1>/dev/null 2>&1 RETVAL=$? return $RETVAL } restart() { stop setdb start } # See how we were called. case "$1" in start) initdb setdb start ;; stop) stop ;; initdb) initdb ;; restart) restart ;; condstop) if [ -e "$LOCKFILE_PKS" ]; then stop fi ;; condrestart) if [ -e "$LOCKFILE_PKS" ]; then restart fi ;; status) status --expect-user "$USER" --pidfile "$PIDFILE_PKSD" --lockfile "$LOCKFILE_PKSD" -- $PKSD status --expect-user "$USER" --pidfile "$PIDFILE_PKS_QUEUE" --lockfile "$LOCKFILE_PKS_QUEUE" \ --displayname pks-queue -- /bin/sh $PKSQUEUE RETVAL=$? ;; *) msg_usage "${0##*/} {start|stop|restart|condstop|condrestart|status}" RETVAL=1 esac exit $RETVAL