blob: 2651f3b63698e29977982e13920e87ba6a6037a6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
#!/bin/sh
#
# /etc/rc.d/rc.minidlna
#
# start/stop/restart/status of the MiniDLNA server.
#
# To make MiniDLNA start automatically at boot, make this
# file executable: chmod 755 /etc/rc.d/rc.minidlna
#
# Written by Georgi D. Sotirov <gsotirov@gmail.com>
# Based on examples from Internet
# Bash colors
C_GREEN=$'\e[32;01m'
C_YELLOW=$'\e[33;01m'
C_RED=$'\e[31;01m'
C_NORMAL=$'\e[0m'
SNAME='MiniDLNA server'
NAME=minidlna
CMD="/usr/sbin/${NAME}d"
CONFILE="/etc/${NAME}.conf"
PIDFILE="/var/run/${NAME}.pid"
CMD_OPTS="-f $CONFILE -P $PIDFILE"
ok() {
echo "${C_GREEN}Done${C_NORMAL}"
}
fail() {
echo "${C_RED}Failure${C_NORMAL}"
}
print_status() {
if [ $? != 0 ]; then
fail
else
ok
fi
}
start() {
if [ -x $CMD ]; then
if [ ! -e $PIDFILE ]; then
echo -n "Starting $SNAME in $CMD... "
$CMD $CMD_OPTS
print_status
else
echo "Starting $SNAME: Already running with PID `cat $PIDFILE`!"
fi
fi
}
stop() {
if [ -e $PIDFILE ]; then
echo -n "Stopping ${SNAME}... "
kill -15 `cat $PIDFILE`
print_status
else
echo "Stopping ${SNAME}: Not running!"
fi
}
restart() {
stop
sleep 3
start
}
status() {
if [ -e $PIDFILE ]; then
echo "$SNAME running with PID `cat $PIDFILE`."
else
STAT=`ps -C $NAME -o pid= | wc -l`
if [ ${STAT} -ge 1 ]; then
echo "$SNAME is running"
else
echo "$SNAME is not running"
fi
fi
}
db_clean() {
# If DB dir defined explicitly in log (i.e. not commented), then use it
DB_DIR_CONF=$(grep -E '^db_dir=' $CONFILE | awk -F'=' '{ print $2 }')
# else fallback to default
DB_DIR=${DB_DIR_CONF:-/var/cache/$NAME}
WAS_RUNNING=0
if [ -e $DB_DIR -a -d $DB_DIR ]; then
# Stop daemon if running
if [ -e $PIDFILE ]; then
WAS_RUNNING=1
stop
sleep 3
fi
echo -n "Cleaning cache in ${DB_DIR}... "
rm -f ${DB_DIR}/files.db
rm -rf ${DB_DIR}art_cache
print_status
# And restart daemon afterwards
if [ $WAS_RUNNING -ne 0 ]; then
start
fi
else
echo "Error: cache dir $DB_DIR does not exist or not a direcory!"
fi
}
help() {
echo "$SNAME control"
echo "Usage: $0 start|stop|restart|status|clean"
echo
}
case "$1" in
'start')
start ;;
'stop')
stop ;;
'restart')
restart ;;
'status')
status ;;
'clean')
db_clean ;;
*)
help ;;
esac
|