From 50a1eb604b2d5503a06d56b76347faa581160245 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 16 Jul 2012 00:01:23 +0000 Subject: Mon Jul 16 00:01:23 UTC 2012 --- extra/bitlbee/rc.d | 75 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 42 insertions(+), 33 deletions(-) (limited to 'extra/bitlbee/rc.d') diff --git a/extra/bitlbee/rc.d b/extra/bitlbee/rc.d index bd9248173..ade85221a 100644 --- a/extra/bitlbee/rc.d +++ b/extra/bitlbee/rc.d @@ -3,38 +3,47 @@ . /etc/rc.conf . /etc/rc.d/functions -name=bitlbee -PID=$(pidof -o %PPID /usr/sbin/bitlbee) -install -o bitlbee -g bitlbee -d -m 755 /var/run/bitlbee +pidfile=/run/bitlbee/bitlbee.pid +if [[ -r $pidfile ]]; then + read -r PID < "$pidfile" + if [[ ! -d /proc/$PID ]]; then + # stale pidfile + unset PID + rm -f "$pidfile" + fi +fi -case "$1" in -start) - stat_busy "Starting $name daemon" - [[ -z "$PID" ]] && { - rm -f /var/run/bitlbee/bitlbee.pid - su -s /bin/sh -c '/usr/sbin/bitlbee -F' bitlbee - } && { - add_daemon $name - stat_done - } || { stat_fail; exit 1; } - ;; -stop) - stat_busy "Stopping $name daemon" - [[ -n "$PID" ]] && { - kill $PID &>/dev/null - } && { - rm -f /var/run/bitlbee/bitlbee.pid - rm_daemon $name - stat_done - } || { stat_fail; exit 1; } - ;; -restart) - $0 stop - sleep 3 - $0 start - ;; -*) - echo "usage: $0 {start|stop|restart}" - exit 1 - ;; +case $1 in + start) + stat_busy "Starting bitlbee daemon" + if [[ $PID ]] || ! su -s /bin/sh -c '/usr/sbin/bitlbee -F' bitlbee; then + stat_fail + exit 1 + else + add_daemon bitlbee + stat_done + fi + ;; + stop) + stat_busy "Stopping bitlbee daemon" + if [[ -z $PID ]] || ! kill $PID &>/dev/null; then + stat_fail + exit 1 + else + rm -f "$pidfile" + rm_daemon bitlbee + stat_done + fi + ;; + restart) + $0 stop + sleep 3 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" + exit 1 + ;; esac + +# vim: set ft=sh et ts=2 sw=2: -- cgit v1.2.3-54-g00ecf