summaryrefslogtreecommitdiff
path: root/extra/bitlbee/rc.d
diff options
context:
space:
mode:
Diffstat (limited to 'extra/bitlbee/rc.d')
-rw-r--r--extra/bitlbee/rc.d75
1 files changed, 42 insertions, 33 deletions
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: