From 2a9d4da2af153d222d39db726dfa3b98a2c2964a Mon Sep 17 00:00:00 2001 From: James Meyer Date: Sat, 30 Jan 2010 19:08:07 -0600 Subject: runit-scripts: frontend add pkill to kill X when sv stop is run apply fix based on patch from FS#533. This stops the frontend from always shutting down after 4 kills. get the number of these terminations that are more than 10 seconds old. if more that 2 terminations (files) are greater than 10 seconds old then stop the frontend from future automatic restarts and delete all the files and print error message to the log. closes FS#522 --- abs/core-testing/runit-scripts/PKGBUILD | 2 +- .../runitscripts/services/frontend/finish | 37 ++++++++++++++++------ 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/abs/core-testing/runit-scripts/PKGBUILD b/abs/core-testing/runit-scripts/PKGBUILD index 60d78b5..80f8054 100755 --- a/abs/core-testing/runit-scripts/PKGBUILD +++ b/abs/core-testing/runit-scripts/PKGBUILD @@ -1,6 +1,6 @@ pkgname=runit-scripts pkgver=1.8.0 -pkgrel=101 +pkgrel=104 pkgdesc="collection of startup scripts for runit" url="http://smarden.org/runit/" license="BSD" diff --git a/abs/core-testing/runit-scripts/runitscripts/services/frontend/finish b/abs/core-testing/runit-scripts/runitscripts/services/frontend/finish index 5b0bd5b..417488d 100755 --- a/abs/core-testing/runit-scripts/runitscripts/services/frontend/finish +++ b/abs/core-testing/runit-scripts/runitscripts/services/frontend/finish @@ -1,28 +1,45 @@ -#!/bin/bash -exec 2>&1 -export TERM=linux -. /etc/rc.conf -. /etc/rc.d/functions +#!/bin/bash +exec 2>&1 +export TERM=linux +. /etc/rc.conf +. /etc/rc.d/functions + +function cleanup(){ + rm -f /etc/sv/frontend/.runtime/* + printhl " Cleaning up /etc/sv/frontend/.runtime/" +} grep -q nox /proc/cmdline STATUS=$? if [ $STATUS = 0 ] then + printhl " status = 0" chvt 2 else + pkill -f "X :0" + printhl " status = 1" if [ ! -d /etc/sv/frontend/.runtime ] then - mkdir -p /etc/sv/frontend/.runtime + mkdir -p /etc/sv/frontend/.runtime fi touch /etc/sv/frontend/.runtime/`date +%s` sleep 0.2 ps -U mythtv -ef |grep "/bin/sh /usr/bin/startx"|grep -v grep|awk ' { print $2 } '|xargs kill -9 2> /dev/null cdate=`date` - numfiles=`/usr/bin/file_time_offset.py -s10 -d/etc/sv/frontend/.runtime` - if [ $numfiles -gt 2 ] + numfilestotal=`/usr/bin/file_time_offset.py -s0 -d/etc/sv/frontend/.runtime` + numfilesover10secondsold=`/usr/bin/file_time_offset.py -s10 -d/etc/sv/frontend/.runtime` + numfileslessthan10secondsold=$(($numfilestotal-$numfilesover10secondsold)) + if [ $numfileslessthan10secondsold -gt 2 ] then sv stop frontend - rm -f /etc/sv/frontend/.runtime/* - printhl " Frontend is not able to start, disabling it." + printhl " Frontend disabled, due to many restarts." + printhl " Run \"sv start frontend\" to try again" + cleanup + else + if [ $numfilestotal -gt 10 ] + then + cleanup + fi fi fi + -- cgit v0.12