summaryrefslogtreecommitdiffstats
path: root/abs/core/runit-scripts/runitscripts/services/frontend/finish
blob: d96bcf0e930638a654c130cd418714dcff992fe6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/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/"
}

#continue plymouthd that was stopped in /etc/X11/Sessions/Linhes
pidfile=/run/plymouth.pid
if [ -e "$pidfile" ]; then
    plypid=`cat "$pidfile"`
    if [ -n "$plypid" ]; then
        kill -s CONT "$plypid"
    fi
fi

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
    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`
    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
    else
         if [ $numfilestotal -gt 10 ]
         then
                 cleanup
         fi
    fi
fi