summaryrefslogtreecommitdiff
path: root/community/minidlna/minidlna.rc
diff options
context:
space:
mode:
Diffstat (limited to 'community/minidlna/minidlna.rc')
-rwxr-xr-xcommunity/minidlna/minidlna.rc51
1 files changed, 35 insertions, 16 deletions
diff --git a/community/minidlna/minidlna.rc b/community/minidlna/minidlna.rc
index df44a549f..6e6f88f35 100755
--- a/community/minidlna/minidlna.rc
+++ b/community/minidlna/minidlna.rc
@@ -2,46 +2,65 @@
. /etc/rc.conf
. /etc/rc.d/functions
-. /etc/minidlna.conf
. /etc/conf.d/minidlna
-PID=`pidof -o %PPID /usr/sbin/minidlna`
+daemon_name=minidlna
+
+get_pid() {
+ pidof -o %PPID /usr/sbin/minidlna
+}
case "$1" in
start)
stat_busy "Starting minidlna"
- [ -z "$PID" ] && su -s /bin/sh -l -c /usr/sbin/minidlna - $MINIDLNA_USER
- if [ $? -gt 0 ]; then
- stat_fail
+ PID=$(get_pid)
+ if [[ -z "$PID" ]]; then
+ rm -f /var/run/$daemon_name.pid
+ touch /var/run/$daemon_name.pid && chown $MINIDLNA_USER:$MINIDLNA_USER /var/run/$daemon_name.pid
+ su -s /bin/sh -l -c /usr/sbin/minidlna - $MINIDLNA_USER
+ if [[ $? -gt 0 ]]; then
+ stat_fail
+ exit 1
+ else
+ add_daemon $daemon_name
+ stat_done
+ fi
else
- add_daemon minidlna
- stat_done
+ stat_fail
+ exit 1
fi
;;
+
stop)
stat_busy "Stopping minidlna"
- [ ! -z "$PID" ] && kill $PID &> /dev/null
+ PID=$(get_pid)
+ [[ -n $PID ]] && kill $PID &> /dev/null
if [ $? -gt 0 ]; then
stat_fail
+ exit 1
else
+ rm -f /var/run/$daemon_name.pid &> /dev/null
rm_daemon minidlna
stat_done
fi
;;
+
clean)
- $0 stop
- sleep 1
- stat_busy "Cleaning minidlna cache"
- [ -z $db_dir ] || rm -r $db_dir/*
- stat_done
- sleep 1
- $0 start
- ;;
+ $0 stop
+ sleep 1
+ stat_busy "Cleaning minidlna cache"
+ [ -z $db_dir ] || rm -r $db_dir/*
+ stat_done
+ sleep 1
+ $0 start
+ ;;
+
restart)
$0 stop
sleep 1
$0 start
;;
+
*)
echo "usage: $0 {start|stop|restart|clean}"
esac