HTPC-Manager icon indicating copy to clipboard operation
HTPC-Manager copied to clipboard

daemon stopped during update

Open deejvince opened this issue 11 years ago • 4 comments

Running check for updates from WebUI, eventually stops the process after update and does not start it again, have to manually do that.. I am running HTPC-Manager on qnap with python 2.7.

2014-01-12 01:53:46 :: htpc.updater :: INFO :: Checking for updates from Source. 2014-01-12 01:53:50 :: htpc.updater :: INFO :: Currently 9 commits behind. 2014-01-12 01:53:55 :: htpc.updater :: INFO :: Attempting update from source. 2014-01-12 01:53:55 :: cherrypy.error :: INFO :: [12/Jan/2014:01:53:55] ENGINE Bus STOPPING 2014-01-12 01:54:00 :: cherrypy.error :: INFO :: [12/Jan/2014:01:54:00] ENGINE HTTP Server cherrypy._cpwsgi_server.CPWSGIServer(('0.0.0.0', 8085)) shut down 2014-01-12 01:54:00 :: cherrypy.error :: INFO :: [12/Jan/2014:01:54:00] ENGINE Stopped thread '_TimeoutMonitor'. 2014-01-12 01:54:00 :: cherrypy.error :: INFO :: [12/Jan/2014:01:54:00] ENGINE Bus STOPPED 2014-01-12 01:54:00 :: cherrypy.error :: INFO :: [12/Jan/2014:01:54:00] ENGINE Bus EXITING 2014-01-12 01:54:00 :: cherrypy.error :: INFO :: [12/Jan/2014:01:54:00] ENGINE PID file removed: '/tmp/HTPC-Manager-master.pid'. 2014-01-12 01:54:00 :: cherrypy.error :: INFO :: [12/Jan/2014:01:54:00] ENGINE B us EXITED 2014-01-12 01:54:00 :: htpc.updater :: INFO :: Downloading update from https://github.com/styxit/HTPC-Manager/tarball/master 2014-01-12 01:54:00 :: cherrypy.error :: INFO :: [12/Jan/2014:01:54:00] ENGINE Waiting for child threads to terminate... 2014-01-12 01:54:00 :: cherrypy.error :: INFO :: [12/Jan/2014:01:54:00] ENGINE Waiting for thread Thread-13. 2014-01-12 01:54:09 :: htpc.updater :: INFO :: Downloading update complete 2014-01-12 01:54:27 :: htpc.updater :: INFO :: updating files successfull 2014-01-12 01:54:27 :: htpc.updater :: WARNING :: Restarting HTPC Manager after update. 2014-01-12 01:54:27 :: cherrypy.error :: INFO :: [12/Jan/2014:01:54:27] ENGINE Bus STOPPING 2014-01-12 01:54:27 :: cherrypy.error :: INFO :: [12/Jan/2014:01:54:27] ENGINE HTTP Server cherrypy._cpwsgi_server.CPWSGIServer(('0.0.0.0', 8085)) already shut down 2014-01-12 01:54:27 :: cherrypy.error :: INFO :: [12/Jan/2014:01:54:27] ENGINE No thread running for None. 2014-01-12 01:54:27 :: cherrypy.error :: INFO :: [12/Jan/2014:01:54:27] ENGINE Bus STOPPED 2014-01-12 01:54:27 :: cherrypy.error :: INFO :: [12/Jan/2014:01:54:27] ENGINE Bus EXITING 2014-01-12 01:54:27 :: cherrypy.error :: INFO :: [12/Jan/2014:01:54:27] ENGINE Bus EXITED

deejvince avatar Jan 12 '14 00:01 deejvince

bump.

deejvince avatar Jan 25 '14 22:01 deejvince

what script dit you exactly use to start it?

styxit avatar Jan 26 '14 12:01 styxit

i setup a startup script in /etc/init.d

here it is:

[~] # cat /etc/init.d/htpc-manager.sh
#! /bin/sh

### BEGIN INIT INFO
# Provides:          HTPC-Manager application instance
# Required-Start:    $all
# Required-Stop:     $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts instance of HTPC-Manager
# Description:       starts instance of HTPC-Manager using start-stop-daemon
### END INIT INFO

############### EDIT ME ##################
# path to app
APP_PATH=/share/MD0_DATA/.qpkg/HTPC-Manager-master


QPKG_NAME=HTPC-Manager-master

PID_FILE=/tmp/$QPKG_NAME.pid

# path to python bin
DAEMON=/opt/bin/python2.7

# startup args
DAEMON_OPTS=" Htpc.py --pid $PID_FILE --daemon $2"

# script name
NAME=htpc

# app name
DESC=HTPC-Manager

# user
RUN_AS=admin

# PID_FILE=/var/run/htpcmanager.pid

############### END EDIT ME ##################

# QPKG Related - enable when converting to QPKG..

#QPKG_DIR=$(/sbin/getcfg $QPKG_NAME Install_Path -f /etc/config/qpkg.conf)
#temp before qpkg to work as static:
QPKG_DIR=/share/MD0_DATA/.qpkg/HTPC-Manager-master



# CheckQpkgEnabled() { #Is the QPKG enabled? if not exit the script
#        if [ $(/sbin/getcfg ${QPKG_NAME} Enable -u -d FALSE -f /etc/config/qpkg.conf) = UNKNOWN ]; then
#                /sbin/setcfg ${QPKG_NAME} Enable TRUE -f /etc/config/qpkg.conf
#        elif [ $(/sbin/getcfg ${QPKG_NAME} Enable -u -d FALSE -f /etc/config/qpkg.conf) != TRUE ]; then
#                /bin/echo "${QPKG_NAME} is disabled."
#                exit 1
#        fi
#}

ConfigPython(){ #checks if the daemon exists and will link /usr/bin/python to it
        #python dependency checking
        if [ ! -x $DAEMON ]; then
                /sbin/write_log "Failed to start $QPKG_NAME, $DAEMON was not found. Please re-install the Pythton ipkg." 1
                exit 1
        else
                #link python to /usr/bin/python to fix htpc.py processing
                /bin/ln -sf $DAEMON /usr/bin/python
        fi
}

CheckForOpt(){ #Does /opt exist? if not check if it's optware that's installed or opkg, and start the package
        /bin/echo -n " Checking for /opt..."
        if [ ! -d /opt/bin ]; then
                if [ -x /etc/init.d/Optware.sh ]; then #if optware ,start optware
                        /bin/echo "  Starting Optware..."
                        /etc/init.d/Optware.sh start
                        sleep 2
                elif [ -x /etc/init.d/opkg.sh ]; then #if opkg, start opkg
                        /bin/echo "  Starting Opkg..."
                        /etc/init.d/opkg.sh start
                        sleep 2
                else #catch all
                        /bin/echo "  No Optware or Opkg found, please install one of them"
                        /sbin/write_log "Failed to start $QPKG_NAME, no Optware or Opkg found. Please re-install one of those packages" 1
                        exit 1
                fi
        else
                /bin/echo "  Found!"
        fi
}

CheckQpkgRunning() { #Is the QPKG already running? if so, exit the script
        if [ -f $PID_FILE ]; then
                #grab pid from pid file
                Pid=$(/bin/cat $PID_FILE)
                if [ -d /proc/$Pid ]; then
                        /bin/echo " $QPKG_NAME is already running"
                        exit 1
                fi
        fi
        #ok, we survived so the QPKG should not be running
}

UpdateQpkg(){ # does a git pull to update to the latest code
        /bin/echo "Updating $QPKG_NAME"
        cd $QPKG_DIR && /opt/bin/git reset --hard HEAD && /opt/bin/git pull HTPC-manager master&& cd - && /bin/sync
}

StartQpkg(){ #Starts the qpkg
        /bin/echo "Starting $QPKG_NAME"
        cd $QPKG_DIR
        PATH=${PATH} ${DAEMON} ${DAEMON_OPTS}
}

ShutdownQPKG() { #kills a proces based on a PID in a given PID file
        /bin/echo "Shutting down ${QPKG_NAME}... "
        if [ -f $PID_FILE ]; then
                #grab pid from pid file
                Pid=$(/bin/cat $PID_FILE)
                i=0
                /bin/kill $Pid
                /bin/echo -n " Waiting for ${QPKG_NAME} to shut down: "
                while [ -d /proc/$Pid ]; do
                        sleep 1
                        let i+=1
                        /bin/echo -n "$i, "
                        if [ $i = 45 ]; then
                                /bin/echo " Tired of waiting, killing ${QPKG_NAME} now"
                                /bin/kill -9 $Pid
                                /bin/rm -f $PID_FILE
                                exit 1
                        fi
                done
                /bin/rm -f $PID_FILE
                /bin/echo "Done"
        else
                /bin/echo "${QPKG_NAME} is not running?"
        fi
}

case "$1" in
  start)
        # CheckQpkgEnabled #Check if the QPKG is enabled, else exit
        /bin/echo "$QPKG_NAME prestartup checks..."
        CheckQpkgRunning #Check if the QPKG is not running, else exit
        CheckForOpt      #Check for /opt, start qpkg if needed
        ConfigPython     #Check for Python, exit if not found
        # UpdateQpkg               #do a git pull
        StartQpkg                #Finally Start the qpkg

        ;;
  stop)
        ShutdownQPKG
        ;;
  restart)
        echo "Restarting $QPKG_NAME"
        $0 stop
        $0 start
        ;;
  *)
        N=/etc/init.d/$QPKG_NAME.sh
        echo "Usage: $N {start|stop|restart}" >&2
        exit 1
        ;;
esac

exit 0

deejvince avatar Jan 28 '14 23:01 deejvince

Bump.

deejvince avatar Feb 20 '14 21:02 deejvince