From c05c2f1e28b95034e7968351fca724273d82ce27 Mon Sep 17 00:00:00 2001 From: martin Date: Tue, 31 May 2011 12:45:27 -0400 Subject: [PATCH] cc-2055: switch to init-d -fix daemon being able to start multiple times -make airtime-install shell script to call installers seperately - --- install/airtime-install | 13 +++++++++++++ install/airtime-install.php | 20 ++++++++++---------- python_apps/pypo/airtime-pypo-init-d | 6 ++---- python_apps/pypo/install/pypo-install.py | 8 +++----- python_apps/pypo/pypo-cli.py | 8 ++++++-- 5 files changed, 34 insertions(+), 21 deletions(-) create mode 100755 install/airtime-install diff --git a/install/airtime-install b/install/airtime-install new file mode 100755 index 000000000..45253fc6e --- /dev/null +++ b/install/airtime-install @@ -0,0 +1,13 @@ +#!/bin/sh + +php airtime-install.php $@ || exit $? + +echo "*** Pypo Installation ***" +#python ".__DIR__."/../python_apps/pypo/install/pypo-install.py || exit $? +python ../python_apps/pypo/install/pypo-install.py || exit $? + +echo "*** Recorder Installation ***" +#python ".__DIR__."/../python_apps/show-recorder/install/recorder-install.py || exit $? +#python ../python_apps/show-recorder/install/recorder-install.py || exit $? + +airtime-check-system diff --git a/install/airtime-install.php b/install/airtime-install.php index d316ced49..e5dfedd30 100644 --- a/install/airtime-install.php +++ b/install/airtime-install.php @@ -43,20 +43,20 @@ catch (Zend_Console_Getopt_Exception $e) { if (isset($opts->h)) { echo $opts->getUsageMessage(); - exit; + exit(1); } // The current version is already installed. if(isset($version) && ($version != false) && ($version == AIRTIME_VERSION) && !isset($opts->r)) { echo "Airtime $version is already installed.".PHP_EOL; echo $opts->getUsageMessage(); - exit(); + exit(1); } // A previous version exists - if so, upgrade. if(isset($version) && ($version != false) && ($version < AIRTIME_VERSION)) { echo "Airtime version $version found.".PHP_EOL; require_once("airtime-upgrade.php"); - exit(); + exit(1); } // ------------------------------------------------------------------------- @@ -126,19 +126,19 @@ AirtimeInstall::CreateSymlinksToUtils(); AirtimeInstall::CreateZendPhpLogFile(); -echo PHP_EOL."*** Pypo Installation ***".PHP_EOL; -system("python ".__DIR__."/../python_apps/pypo/install/pypo-install.py"); +#echo PHP_EOL."*** Pypo Installation ***".PHP_EOL; +#system("python ".__DIR__."/../python_apps/pypo/install/pypo-install.py"); -echo PHP_EOL."*** Recorder Installation ***".PHP_EOL; -system("python ".__DIR__."/../python_apps/show-recorder/install/recorder-install.py"); +#echo PHP_EOL."*** Recorder Installation ***".PHP_EOL; +#system("python ".__DIR__."/../python_apps/show-recorder/install/recorder-install.py"); //wait for 1.9.0 release //echo PHP_EOL."*** Media Monitor Installation ***".PHP_EOL; //system("python ".__DIR__."/../python_apps/pytag-fs/install/media-monitor-install.py"); -echo PHP_EOL."*** Verifying Correct System Environment ***".PHP_EOL; -$command = "airtime-check-system"; -system($command); +#echo PHP_EOL."*** Verifying Correct System Environment ***".PHP_EOL; +#$command = "airtime-check-system"; +#system($command); echo "******************************* Install Complete *******************************".PHP_EOL; diff --git a/python_apps/pypo/airtime-pypo-init-d b/python_apps/pypo/airtime-pypo-init-d index 1f5733857..db6fd1510 100755 --- a/python_apps/pypo/airtime-pypo-init-d +++ b/python_apps/pypo/airtime-pypo-init-d @@ -2,12 +2,10 @@ USERID=pypo GROUPID=pypo -ENABLE="false" NAME=Airtime -ID=airtime DAEMON=/usr/bin/airtime-pypo -PIDFILE=/var/run/$ID.pid +PIDFILE=/var/run/airtime.pid start () { start-stop-daemon --start --background --quiet --chuid $USERID:$GROUPID --make-pidfile --pidfile $PIDFILE --startas $DAEMON @@ -16,7 +14,7 @@ start () { stop () { # Send TERM after 5 seconds, wait at most 30 seconds. start-stop-daemon --stop --oknodo --retry TERM/5/0/30 --quiet --pidfile $PIDFILE - rm $PIDFILE + rm -f $PIDFILE } diff --git a/python_apps/pypo/install/pypo-install.py b/python_apps/pypo/install/pypo-install.py index 0a0bbce2c..4d2aaa27c 100755 --- a/python_apps/pypo/install/pypo-install.py +++ b/python_apps/pypo/install/pypo-install.py @@ -174,12 +174,10 @@ try: """ print "Waiting for processes to start..." - os.system("service airtime-pypo start") - Popen("service airtime-pypo start".split(" ")) - - print "sleeping" - time.sleep(10) + p = Popen("/etc/init.d/airtime-pypo start", shell=True) + sts = os.waitpid(p.pid, 0)[1] + except Exception, e: print "exception:" + str(e) sys.exit(1) diff --git a/python_apps/pypo/pypo-cli.py b/python_apps/pypo/pypo-cli.py index ab83eb94f..73d5fd9ec 100755 --- a/python_apps/pypo/pypo-cli.py +++ b/python_apps/pypo/pypo-cli.py @@ -109,6 +109,12 @@ if __name__ == '__main__': print '###########################################' signal.signal(signal.SIGINT, keyboardInterruptHandler) + + #import daemonize + #daemonize.createDaemon() + #open("airtime.pid", "w").write(str(os.getpid()) + "\n") + #daemonize.drop_privileges("pypo", "pypo") + # initialize g = Global() @@ -127,11 +133,9 @@ if __name__ == '__main__': q = Queue() pp = PypoPush(q) - pp.daemon = True pp.start() pf = PypoFetch(q) - pf.daemon = True pf.start() while True: time.sleep(3600)