diff --git a/init/ffpstick b/init/ffpstick new file mode 100644 index 0000000..0d2f3ac --- /dev/null +++ b/init/ffpstick @@ -0,0 +1,85 @@ +#!/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" \ No newline at end of file