summaryrefslogtreecommitdiffstats
path: root/abs/core/LinHES-system
diff options
context:
space:
mode:
authorBritney Fransen <brfransen@gmail.com>2013-12-12 20:26:55 (GMT)
committerBritney Fransen <brfransen@gmail.com>2013-12-12 20:26:55 (GMT)
commitb97e90ff739fa2f7d27ed5c62ae8436c6ce2bb8d (patch)
treebc9551882ded56ac8fdb0ea27025fbcc06b1790b /abs/core/LinHES-system
parent5f58ea928f87bc20e8bb8102f8ce6272d3d6fc47 (diff)
downloadlinhes_pkgbuild-b97e90ff739fa2f7d27ed5c62ae8436c6ce2bb8d.zip
linhes_pkgbuild-b97e90ff739fa2f7d27ed5c62ae8436c6ce2bb8d.tar.gz
linhes_pkgbuild-b97e90ff739fa2f7d27ed5c62ae8436c6ce2bb8d.tar.bz2
LinHES-system: change myth_mtc.py to run in cron hourly to run more reliably after system is down or is busy.
Diffstat (limited to 'abs/core/LinHES-system')
-rwxr-xr-xabs/core/LinHES-system/PKGBUILD17
-rw-r--r--abs/core/LinHES-system/lh_system_backup_job10
-rw-r--r--abs/core/LinHES-system/lh_system_host_update9
-rwxr-xr-xabs/core/LinHES-system/myth_mtc.cron23
-rwxr-xr-xabs/core/LinHES-system/myth_mtc.py37
-rwxr-xr-xabs/core/LinHES-system/myth_mtc.sh14
-rw-r--r--abs/core/LinHES-system/myth_status.py4
-rw-r--r--abs/core/LinHES-system/system.install12
8 files changed, 68 insertions, 58 deletions
diff --git a/abs/core/LinHES-system/PKGBUILD b/abs/core/LinHES-system/PKGBUILD
index e03cb7d..b0b8ba7 100755
--- a/abs/core/LinHES-system/PKGBUILD
+++ b/abs/core/LinHES-system/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=LinHES-system
pkgver=8.1
-pkgrel=9
+pkgrel=10
arch=('i686' 'x86_64')
install=system.install
pkgdesc="Everything that makes LinHES an automated system"
@@ -11,7 +11,7 @@ depends=('linhes-sounds' 'xdotool' 'tilda' 'keylaunch'
'ethtool' 'gnu-netcat' 'normalize' 'ttf-overlock'
'handbrake-cli' 'mkvtoolnix' 'mplayer')
backup=('etc/modprobe.d/alsa-base.conf')
-binfiles="LinHES-start optimize_mythdb.py myth_mtc.py myth_mtc.sh
+binfiles="LinHES-start optimize_mythdb.py myth_mtc.py
load-modules-mythvantage.sh unclutter-toggle.sh tvterm.sh
mythfrontend-start set_windowmanager.sh myth_status.py myth_status.sh
install_supplemental_service.sh get_airplay_key importfiles.sh
@@ -28,7 +28,7 @@ binfiles="LinHES-start optimize_mythdb.py myth_mtc.py myth_mtc.sh
mythwelcome-config.py mythwelcome-set-alarm.sh mythwelcome-test-wakeup.sh"
source=(LinHES-session LinHES-profile.sh $binfiles
- alsa-base cacheclean.cron xfs_defrag.cron
+ alsa-base cacheclean.cron myth_mtc.cron xfs_defrag.cron
readme_is_xml readme_light add_storage.readme
system-sudo.rules msg.cfg)
@@ -62,6 +62,7 @@ package() {
#install -m755 -D $srcdir/smolt.cron $pkgdir/etc/cron.weekly/smolt.cron
install -m755 -D $srcdir/cacheclean.cron $pkgdir/etc/cron.weekly/cacheclean
install -m755 -D $srcdir/xfs_defrag.cron $pkgdir/etc/cron.weekly/xfs_defrag
+ install -m755 -D $srcdir/myth_mtc.cron $pkgdir/etc/cron.hourly/myth_mtc
#sudo rules
mkdir -p $pkgdir/etc/sudoers.d/
@@ -78,22 +79,21 @@ md5sums=('7f5624a2d965a4cd3ed6a37ebee13fd9'
'de32a1c50101265dd7f6ca5037f7a26a'
'301884fb60521627fffd1160b2cf5181'
'76b2637cac0452b3acdbeeb4e8a5474b'
- '79a63270794ef7de244af10dad51330a'
- '6f5b757524d905b5d2420519a88edc93'
+ '22807bd1e37d2a07bc0bd3f2a9fd2bb4'
'dc3eef2a624754e16805d72bbe488b67'
'617af86b901538817ebdcaf646248dc5'
'542e670e78d117657f93141e9689f54d'
'8da6a7f1703a002f84e66629e847d8a6'
'bb72ab230c7a71706285bd0f31a4fb1f'
- '42981e30e016c5f00b841b8490a3a489'
+ 'f8683caddf74dca1ea5cc3db4d748764'
'962a3e9eaba2d1466251b7ab0956705d'
'1758aed160de64abfafb28a3a8f3390e'
'33fbebbd546672cedd3c5e7350ab414e'
'c773d8caacba8fbd4968e8afe5137bc6'
'3edef50a49a47694bf8add39cc160add'
- 'aa6010065f5ec2afe1d2bee4cf81dec7'
+ 'b376c30f95892b8682fad84f81685f75'
'bc69a520add58ede9b060c73e67ace13'
- '26fdd26e945f0c187f9fdcf98a7a5bef'
+ '2e5e1b3187f75154366bffe806ff8ae9'
'47e093e8cfe4b5b96602358e1f540832'
'4d6a6e88b519caf917ebe6c85c32c45b'
'2c005d95312018bef80092136f80f254'
@@ -129,6 +129,7 @@ md5sums=('7f5624a2d965a4cd3ed6a37ebee13fd9'
'410795ef9039e4c6c0484e706ecfd567'
'eb879fee9603a05d5420d4ce8ed9e450'
'02c810c2f47b7c4495fdacaf54189473'
+ 'fae4162988de9525ba3f9341e17f9c52'
'474d5c6883fcfffae4f199aceb3b1356'
'36bdfa8d877cea20ca3870faf08e08d5'
'59d0602bac7e06f11abba1894acc8bb0'
diff --git a/abs/core/LinHES-system/lh_system_backup_job b/abs/core/LinHES-system/lh_system_backup_job
index 7d05be5..3ac9de0 100644
--- a/abs/core/LinHES-system/lh_system_backup_job
+++ b/abs/core/LinHES-system/lh_system_backup_job
@@ -33,8 +33,7 @@ function backup_status_check(){
function backup(){
- echo "#######################################"
- echo "Starting backup "
+ echo "Starting Backup"
mkdir -p $BACKUPDIR/$DATE
#backup database
@@ -117,7 +116,6 @@ function backup(){
echo
echo "Created file:"
echo " $BACKUPDIR/backup.$DATE.tgz"
- echo "########################################"
}
function update_backup_status(){
@@ -131,7 +129,7 @@ function update_backup_status(){
COMPLETE_MSG="Last backup FAILED `date '+%D %-I:%M %p'`"
fi
echo "Updating menu with:"
- echo " $COMPLETE_MSG"
+ echo " $COMPLETE_MSG"
xmlfile="/usr/share/mythtv/themes/defaultmenu/mythbackup.xml"
grep -q "<description>" $xmlfile >/dev/null
@@ -198,10 +196,10 @@ function remote_backup(){
echo " Copying system backups to $SECBACKUP"
rsync -au --delete $BACKUPDIR $SECBACKUP
else
- echo "* $SECBACKUPDISK isn't mounted."
+ echo " $SECBACKUPDISK isn't mounted."
fi
else
- echo "* Link $SECBACKUPLINK doesn't exist."
+ echo " Link $SECBACKUPLINK doesn't exist."
fi
fi
}
diff --git a/abs/core/LinHES-system/lh_system_host_update b/abs/core/LinHES-system/lh_system_host_update
index 56a22e5..ca6aeff 100644
--- a/abs/core/LinHES-system/lh_system_host_update
+++ b/abs/core/LinHES-system/lh_system_host_update
@@ -2,8 +2,8 @@
# Process that call this script
# func update
# supplemental web
-echo "#####################################################"
-echo "Starting update"
+
+echo "Starting Update"
MYTH_RUN_STATUS="1"
. /etc/profile
@@ -17,7 +17,7 @@ fi
case $Hostupdateplan in
"Myth_only")
- echo "Updating myth packages"
+ echo "Updating only myth packages"
postfix=`cat $INSTALL_DIR/usr/local/share/mythtv/.releasetype`
for mythl in mythphone mytharchive mythbrowser mythnews mythgame mythflix mythweather mythcontrols mythgallery mythmovietime mythmusic mythsmolt mythvideo mythweb mythtv
do
@@ -52,6 +52,3 @@ case $Hostupdateplan in
echo "Unknown $Hostupdateplan, skipping updates"
;;
esac
-
-
-echo "##################################################################################"
diff --git a/abs/core/LinHES-system/myth_mtc.cron b/abs/core/LinHES-system/myth_mtc.cron
new file mode 100755
index 0000000..4f63dec
--- /dev/null
+++ b/abs/core/LinHES-system/myth_mtc.cron
@@ -0,0 +1,23 @@
+#!/bin/bash
+MYTH_RUN_STATUS=1
+. /etc/profile
+
+date=`date +%Y-%m-%d`
+timestamp=`date +'%Y-%m-%d %H:%M'`
+logFile="/var/log/$date/myth_mtc.log"
+
+if [ ! -f $logFile ]; then
+ touch $logFile
+fi
+
+#check logfile for Finished and if not run myth_mtc.py
+if ! grep -q "Finished" $logFile
+then
+ MYTHCONFDIR=/usr/share/mythtv unbuffer myth_mtc.py >> $logFile 2>&1
+ if [ $? = 0 ]
+ then
+ echo "Finished $timestamp" >> $logFile
+ else
+ echo "Time Exceeded $timestamp" >> $logFile
+ fi
+fi
diff --git a/abs/core/LinHES-system/myth_mtc.py b/abs/core/LinHES-system/myth_mtc.py
index 2c1fd14..7847313 100755
--- a/abs/core/LinHES-system/myth_mtc.py
+++ b/abs/core/LinHES-system/myth_mtc.py
@@ -5,6 +5,7 @@ import re
import socket
import os
import datetime,time
+import shlex
try:
from MythTV import MythBE
@@ -34,7 +35,7 @@ def optimize():
for row in result:
ctable=row[0]
for op in ops:
- print op,ctable
+ print " %s %s" %(op,ctable)
cmd= "%s table %s" %(op,ctable)
cursor.execute(cmd)
@@ -128,10 +129,18 @@ def mfd_check():
return True
+def bail_if_another_is_running():
+ cmd = shlex.split("pgrep -u {} -f {}".format(os.getuid(), __file__))
+ pids = subprocess.check_output(cmd).strip().split('\n')
+ if len(pids) > 1:
+ pids.remove("{}".format(os.getpid()))
+ print "Exiting! Found {} is already running (pids): {}".format(
+ __file__, " ".join(pids))
+ raise SystemExit(1)
def idle_check():
- print "%s Checking idle" %(get_timestamp())
+ print "\n%s Checking Idle" %(get_timestamp())
if ( upcoming_check() and schemalock_check() and job_check() and in_use() and mfd_check() ):
idle=True
print "\n%s Myth is idle" %(get_timestamp())
@@ -142,35 +151,37 @@ def idle_check():
def run_stuff():
if idle_check():
- print "\n%sRunning optimize" %(get_timestamp())
+ print "\n#######################################"
+ print "\n%s Running Optimize" %(get_timestamp())
optimize()
- print "\n%s Running backup" %(get_timestamp())
+ print "\n#######################################"
+ print "\n%s Running Backup" %(get_timestamp())
os.system('/usr/LH/bin/lh_system_backup_job')
- print "\n%s Running system update" %(get_timestamp())
- os.system('/usr/LH/bin/lh_system_host_update')
+ print "\n#######################################"
+ print "\n%s Running System Update" %(get_timestamp())
+ os.system('/usr/LH/bin/lh_system_host_update')
+
+ print "\n#######################################"
continue_loop=False
else:
continue_loop=True
return continue_loop
#---------------------------------
+bail_if_another_is_running()
starttime=time.time()
ctin=True
while ctin:
ctin=run_stuff()
- print "\n"
if ctin:
- print "%s Waiting 10 minutes before trying again" %(get_timestamp())
+ print "\n%s Waiting 10 minutes before trying again." %(get_timestamp())
time.sleep(600)
current_time=time.time()
- if (current_time - starttime) > 10800 :
+ if (current_time - starttime) > 3000 :
ctin = False
- print "time exceeded (3 hours)"
+ print "\n%s Time Exceeded 50 minutes. Quitting.)" %(get_timestamp())
exit(1)
-
-
-
diff --git a/abs/core/LinHES-system/myth_mtc.sh b/abs/core/LinHES-system/myth_mtc.sh
deleted file mode 100755
index 7899daa..0000000
--- a/abs/core/LinHES-system/myth_mtc.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-MYTH_RUN_STATUS=1
-. /etc/profile
-
-date=`date +%Y-%m-%d`
-logFile="/var/log/$date/myth_mtc.log"
-
-MYTHCONFDIR=/usr/share/mythtv myth_mtc.py > $logFile 2>&1
-if [ $? = 0 ]
-then
- echo "Finished $date" >> $logFile
-else
- echo "Time Exceede $date" >> $logFile
-fi
diff --git a/abs/core/LinHES-system/myth_status.py b/abs/core/LinHES-system/myth_status.py
index df8c84a..40dd3b3 100644
--- a/abs/core/LinHES-system/myth_status.py
+++ b/abs/core/LinHES-system/myth_status.py
@@ -92,7 +92,7 @@ def print_alerts():
out_alert += out_line
print "System Alerts:"
- print "---------------"
+ print "--------------"
if len(out_alert) > 0:
print out_alert
print " Go to http://%s and click Health & Maintenance for more information." %gethostname()
@@ -239,7 +239,7 @@ class tuner_recording_status:
def print_conflict_list(self):
print ""
print "Recording Conflicts:"
- print "----------------------"
+ print "--------------------"
if len(self.get_conflict_list()) > 0:
for i in self.get_conflict_list():
print " %s - %-50s " %(i[0],i[1])
diff --git a/abs/core/LinHES-system/system.install b/abs/core/LinHES-system/system.install
index ddad9e3..880ea02 100644
--- a/abs/core/LinHES-system/system.install
+++ b/abs/core/LinHES-system/system.install
@@ -8,17 +8,11 @@ pre_install() {
# arg 1: the new package version
post_install() {
- MVDIR=/usr/LH/bin
- #add myth_mtc to cron list
- if [ ! -e /etc/cron.daily/myth_mtc ]
- then
- ln -s $MVDIR/myth_mtc.sh /etc/cron.daily/myth_mtc
+ #remove daily myth_mtc link
+ if [ -h /etc/cron.daily/myth_mtc ]; then
+ rm -f /etc/cron.daily/myth_mtc
fi
- # Add db entry for misc status in MythWeb
- # not needed in R8 because it's in the DB, may be removed
- #/usr/LH/bin/misc_status_config.py
-
sv restart msg_daemon
}