diff options
Diffstat (limited to 'abs/core/runit-scripts/runitscripts')
-rwxr-xr-x | abs/core/runit-scripts/runitscripts/services/frontend/finish | 50 |
1 files changed, 31 insertions, 19 deletions
diff --git a/abs/core/runit-scripts/runitscripts/services/frontend/finish b/abs/core/runit-scripts/runitscripts/services/frontend/finish index d96bcf0..a1db046 100755 --- a/abs/core/runit-scripts/runitscripts/services/frontend/finish +++ b/abs/core/runit-scripts/runitscripts/services/frontend/finish @@ -11,7 +11,8 @@ function cleanup(){ #continue plymouthd that was stopped in /etc/X11/Sessions/Linhes pidfile=/run/plymouth.pid -if [ -e "$pidfile" ]; then +if [ -e "$pidfile" ]; +then plypid=`cat "$pidfile"` if [ -n "$plypid" ]; then kill -s CONT "$plypid" @@ -20,34 +21,45 @@ fi grep -q nox /proc/cmdline STATUS=$? - if [ $STATUS = 0 ] - then - printhl " status = 0" - chvt 2 +if [ $STATUS = 0 ] +then + printhl " status = 0: no X" + chvt 2 else - pkill -f "X :0" - printhl " status = 1" + x1pid=`pidof Xorg` + pkill -f "Xorg" + printhl " status = 1: X" 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` + sleep 1 + #ps -U mythtv -ef |grep "xinit /etc/X11/Sessions/LinHES"|grep -v grep|awk ' { print $2 } '|xargs kill -9 2> /dev/null + #cdate=`date` 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 - printhl " Frontend disabled, due to many restarts." - printhl " Run \"sv start frontend\" to try again" - cleanup + sv stop frontend + printhl " Frontend disabled, due to many restarts." + printhl " Run \"sv start frontend\" to try again" + cleanup else - if [ $numfilestotal -gt 10 ] - then - cleanup - fi + if [ $numfilestotal -gt 10 ] + then + cleanup + fi + fi + if [[ `pidof "Xorg"` -eq $x1pid ]] + then + printhl " X $x1pid is shutting down, waiting 10 seconds" + sleep 10 + if [[ `pidof "Xorg"` -eq $x1pid ]] + then + printhl " killing X $x1pid" + kill -9 $x1pid + fi fi fi |