You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
1.5 KiB
85 lines
1.5 KiB
#!/ffp/bin/sh
|
|
|
|
# PROVIDE: Couchpotato
|
|
# REQUIRE: LOGIN
|
|
|
|
. /ffp/etc/ffp.subr
|
|
|
|
# script name
|
|
NAME=couchpotato
|
|
APP_PATH=/ffp/usr/local/CouchPotatoServer
|
|
APP_CONFIG_DIF=/ffp/root/.couchpotato
|
|
|
|
# path to python bin
|
|
DAEMON=/ffp/bin/python
|
|
|
|
# Path to store PID file
|
|
PID_FILE=/ffp/var/run/couchpotato.pid
|
|
PID_PATH=$(dirname $PID_FILE)
|
|
|
|
# startup args
|
|
DAEMON_OPTS=" ${APP_PATH}/CouchPotato.py --daemon --pid_file=${PID_FILE}"
|
|
|
|
command=$NAME
|
|
start_cmd="couchpotato_start"
|
|
stop_cmd="couchpotato_stop"
|
|
status_cmd="couchpotato_status"
|
|
|
|
wait_for_status()
|
|
{
|
|
counter=$2
|
|
while [ ${counter} -gt 0 ]; do
|
|
daemon_status
|
|
[ $? -eq $1 ] && break
|
|
let counter=counter-1
|
|
sleep 1
|
|
done
|
|
}
|
|
|
|
daemon_status()
|
|
{
|
|
if [ -f ${PID_FILE} ] && [ -d /proc/`cat ${PID_FILE}` ]; then
|
|
return 0
|
|
fi
|
|
return 1
|
|
}
|
|
|
|
couchpotato_start()
|
|
{
|
|
if [ -f ${PID_FILE} ] && [ -d /proc/`cat ${PID_FILE}` ]; then
|
|
echo "$NAME already running"
|
|
return 1
|
|
fi
|
|
|
|
echo "Starting $NAME"
|
|
$DAEMON $DAEMON_OPTS
|
|
}
|
|
|
|
couchpotato_stop()
|
|
{
|
|
if [ -f $PID_FILE ] ; then
|
|
echo "Stopping $NAME"
|
|
kill `cat ${PID_FILE}`
|
|
wait_for_status 1 20
|
|
rm -f ${PID_FILE}
|
|
else
|
|
echo "Cannot find $PID_FILE"
|
|
fi
|
|
}
|
|
|
|
couchpotato_status()
|
|
{
|
|
local pid=` cat ${PID_FILE} 2>/dev/null `
|
|
if test -n "$pid"; then
|
|
if cat /proc/$pid/cmdline | grep ${APP_PATH} >/dev/null ; then
|
|
[ "$1" == "silent" ] || echo "$NAME is running"
|
|
return 0
|
|
fi
|
|
rm $pidfile
|
|
fi
|
|
|
|
[ "$1" == "silent" ] || echo "$NAME not running"
|
|
return 1
|
|
}
|
|
|
|
run_rc_command "$1"
|