From 0bb7fa4975abdb394faaeed7ed3eb4893588c2fb Mon Sep 17 00:00:00 2001 From: Martin Konecny Date: Mon, 1 Apr 2013 19:31:13 -0400 Subject: [PATCH] don't change monit monitor state on service start/stop --- .../airtime-media-monitor-init-d | 25 +++++--- .../install/media-monitor-initialize.py | 2 +- python_apps/pypo/airtime-liquidsoap-init-d | 60 +++++++++++-------- python_apps/pypo/airtime-playout-init-d | 30 ++++++---- python_apps/pypo/install/pypo-initialize.py | 4 +- 5 files changed, 77 insertions(+), 44 deletions(-) diff --git a/python_apps/media-monitor/airtime-media-monitor-init-d b/python_apps/media-monitor/airtime-media-monitor-init-d index 2f37a49fa..ab8e0131a 100755 --- a/python_apps/media-monitor/airtime-media-monitor-init-d +++ b/python_apps/media-monitor/airtime-media-monitor-init-d @@ -17,19 +17,24 @@ DAEMON=/usr/lib/airtime/media-monitor/airtime-media-monitor PIDFILE=/var/run/airtime-media-monitor.pid start () { - start-stop-daemon --start --background --quiet --chuid $USERID:$GROUPID --make-pidfile --pidfile $PIDFILE --startas $DAEMON - monit monitor airtime-media-monitor >/dev/null 2>&1 + start-stop-daemon --start --background --quiet --chuid $USERID:$GROUPID \ + --make-pidfile --pidfile $PIDFILE --startas $DAEMON } stop () { # Send TERM after 5 seconds, wait at most 30 seconds. - monit unmonitor airtime-media-monitor >/dev/null 2>&1 start-stop-daemon --stop --oknodo --retry TERM/5/0/30 --quiet --pidfile $PIDFILE rm -f $PIDFILE } -start_no_monit() { - start-stop-daemon --start --background --quiet --chuid $USERID:$GROUPID --make-pidfile --pidfile $PIDFILE --startas $DAEMON +start_with_monit() { + start + monit monitor airtime-media-monitor >/dev/null 2>&1 +} + +stop_with_monit() { + monit unmonitor airtime-media-monitor >/dev/null 2>&1 + stop } @@ -53,10 +58,16 @@ case "${1:-''}" in start echo "Done." ;; - 'start-no-monit') + 'start-with-monit') # restart commands here echo -n "Starting $NAME: " - start_no_monit + start_with_monit + echo "Done." + ;; + 'stop-with-monit') + # restart commands here + echo -n "Stopping $NAME: " + stop_with_monit echo "Done." ;; 'status') diff --git a/python_apps/media-monitor/install/media-monitor-initialize.py b/python_apps/media-monitor/install/media-monitor-initialize.py index be3d39b85..8cc7b6149 100644 --- a/python_apps/media-monitor/install/media-monitor-initialize.py +++ b/python_apps/media-monitor/install/media-monitor-initialize.py @@ -16,6 +16,6 @@ try: #Start media-monitor daemon if "airtime_service_start" in os.environ and os.environ["airtime_service_start"] == "t": print "* Waiting for media-monitor processes to start..." - subprocess.call("invoke-rc.d airtime-media-monitor start-no-monit", shell=True) + subprocess.call("invoke-rc.d airtime-media-monitor start", shell=True) except Exception, e: print e diff --git a/python_apps/pypo/airtime-liquidsoap-init-d b/python_apps/pypo/airtime-liquidsoap-init-d index 37956a265..fcf3a0742 100755 --- a/python_apps/pypo/airtime-liquidsoap-init-d +++ b/python_apps/pypo/airtime-liquidsoap-init-d @@ -17,22 +17,6 @@ DAEMON=/usr/lib/airtime/pypo/bin/airtime-liquidsoap PIDFILE=/var/run/airtime-liquidsoap.pid start () { - start_no_monit - monit monitor airtime-liquidsoap >/dev/null 2>&1 -} - -stop () { - monit unmonitor airtime-liquidsoap >/dev/null 2>&1 - #send term signal after 10 seconds - timeout -k 5 10 /usr/lib/airtime/airtime_virtualenv/bin/python \ - /usr/lib/airtime/pypo/bin/liquidsoap_scripts/liquidsoap_prepare_terminate.py - # Send TERM after 5 seconds, wait at most 30 seconds. - start-stop-daemon --stop --oknodo --retry=TERM/10/KILL/5 --quiet --pidfile $PIDFILE - rm -f $PIDFILE - sleep 3 -} - -start_no_monit() { chown pypo:pypo /var/log/airtime/pypo chown pypo:pypo /var/log/airtime/pypo-liquidsoap chown pypo:pypo /etc/airtime/liquidsoap.cfg @@ -45,21 +29,43 @@ start_no_monit() { --pidfile $PIDFILE --nicelevel -15 --startas $DAEMON } +stop () { + #send term signal after 10 seconds + timeout -k 5 10 /usr/lib/airtime/airtime_virtualenv/bin/python \ + /usr/lib/airtime/pypo/bin/liquidsoap_scripts/liquidsoap_prepare_terminate.py + # Send TERM after 5 seconds, wait at most 30 seconds. + start-stop-daemon --stop --oknodo --retry=TERM/10/KILL/5 --quiet --pidfile $PIDFILE + rm -f $PIDFILE + sleep 3 +} + +start_with_monit () { + start + monit monitor airtime-liquidsoap >/dev/null 2>&1 +} + +stop_with_monit() { + monit unmonitor airtime-liquidsoap >/dev/null 2>&1 + stop +} + + + case "${1:-''}" in 'stop') - echo -n "Stopping Liquidsoap: " + echo -n "Stopping $NAME: " stop echo "Done." ;; 'start') - echo -n "Starting Liquidsoap: " + echo -n "Starting $NAME: " start echo "Done." ;; 'restart') # restart commands here - echo -n "Restarting Liquidsoap: " + echo -n "Restarting $NAME: " stop start echo "Done." @@ -69,22 +75,28 @@ case "${1:-''}" in if [ -f "$PIDFILE" ]; then pid=`cat $PIDFILE` if [ -d "/proc/$pid" ]; then - echo "Liquidsoap is running" + echo "$NAME is running" exit 0 fi fi - echo "Liquidsoap is not running" + echo "$NAME is not running" exit 1 ;; - 'start-no-monit') + 'start-with-monit') # restart commands here echo -n "Starting $NAME: " - start_no_monit + start_with_monit + echo "Done." + ;; + 'stop-with-monit') + # restart commands here + echo -n "Stopping $NAME: " + stop_with_monit echo "Done." ;; *) # no parameter specified - echo "Usage: $SELF start|stop|restart" + echo "Usage: $SELF start|stop|restart|status" exit 1 ;; diff --git a/python_apps/pypo/airtime-playout-init-d b/python_apps/pypo/airtime-playout-init-d index 499f6e1d7..13b46cf70 100755 --- a/python_apps/pypo/airtime-playout-init-d +++ b/python_apps/pypo/airtime-playout-init-d @@ -10,7 +10,7 @@ ### END INIT INFO USERID=root -NAME="Airtime Scheduler Engine" +NAME="Airtime Scheduler" DAEMON=/usr/lib/airtime/pypo/bin/airtime-playout PIDFILE=/var/run/airtime-playout.pid @@ -18,21 +18,24 @@ PIDFILE=/var/run/airtime-playout.pid start () { chown pypo:pypo /etc/airtime chown pypo:pypo /etc/airtime/liquidsoap.cfg - - start-stop-daemon --start --background --quiet --chuid $USERID:$USERID --make-pidfile --pidfile $PIDFILE --startas $DAEMON - monit monitor airtime-playout >/dev/null 2>&1 + start-stop-daemon --start --background --quiet --chuid $USERID:$USERID \ + --make-pidfile --pidfile $PIDFILE --startas $DAEMON } stop () { # Send TERM after 5 seconds, wait at most 30 seconds. - - monit unmonitor airtime-playout >/dev/null 2>&1 start-stop-daemon --stop --oknodo --retry TERM/5/0/30 --quiet --pidfile $PIDFILE rm -f $PIDFILE } -start_no_monit() { - start-stop-daemon --start --background --quiet --chuid $USERID:$USERID --make-pidfile --pidfile $PIDFILE --startas $DAEMON +start_with_monit() { + start + monit monitor airtime-playout >/dev/null 2>&1 +} + +stop_with_monit() { + monit unmonitor airtime-playout >/dev/null 2>&1 + stop } case "${1:-''}" in @@ -55,12 +58,19 @@ case "${1:-''}" in start echo "Done." ;; - 'start-no-monit') + 'start-with-monit') # restart commands here echo -n "Starting $NAME: " - start_no_monit + start_with_monit echo "Done." ;; + 'stop-with-monit') + # restart commands here + echo -n "Stopping $NAME: " + stop_with_monit + echo "Done." + ;; + 'status') # status commands here /usr/bin/airtime-check-system diff --git a/python_apps/pypo/install/pypo-initialize.py b/python_apps/pypo/install/pypo-initialize.py index 6581eef72..18ab708a0 100644 --- a/python_apps/pypo/install/pypo-initialize.py +++ b/python_apps/pypo/install/pypo-initialize.py @@ -88,8 +88,8 @@ try: if "airtime_service_start" in os.environ and os.environ["airtime_service_start"] == "t": print "* Waiting for pypo processes to start..." - subprocess.call("invoke-rc.d airtime-playout start-no-monit > /dev/null 2>&1", shell=True) - subprocess.call("invoke-rc.d airtime-liquidsoap start-no-monit > /dev/null 2>&1", shell=True) + subprocess.call("invoke-rc.d airtime-playout start > /dev/null 2>&1", shell=True) + subprocess.call("invoke-rc.d airtime-liquidsoap start > /dev/null 2>&1", shell=True) except Exception, e: print e