mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
tvheadend: rework start/stop/suspend. prepare for systemd
This commit is contained in:
parent
e6f23c5b5c
commit
3c8da986e3
@ -24,6 +24,7 @@
|
||||
|
||||
LOCKDIR="/var/lock/"
|
||||
LOCKFILE="tvheadend.disabled"
|
||||
LOCKFILE_SLEEP="tvheadend.sleep"
|
||||
|
||||
ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.tvheadend"
|
||||
ADDON_SYS_DIR="/usr/lib/xbmc/addons/service.multimedia.tvheadend"
|
||||
@ -113,7 +114,9 @@ mkdir -p /var/config
|
||||
. /var/config/tvheadend.conf.default
|
||||
. /var/config/tvheadend.conf
|
||||
|
||||
|
||||
rm -rf "$LOCKDIR/$LOCKFILE_SLEEP" &>/dev/null
|
||||
tvheadend.stop
|
||||
rm -rf "$LOCKDIR/$LOCKFILE" &>/dev/null
|
||||
if [ ! "$(pidof $ADDON_BIN)" ]; then
|
||||
# start userspace DVB driver/addon
|
||||
for driver_dvb in $(find /storage/.xbmc/addons/driver.dvb.*/bin/userspace-driver.sh -type f 2>/dev/null); do
|
||||
@ -123,11 +126,10 @@ mkdir -p /var/config
|
||||
. $driver_dvb
|
||||
done
|
||||
|
||||
if [ -f "$LOCKDIR/$LOCKFILE" ] ; then
|
||||
rm -rf "$LOCKDIR/$LOCKFILE"
|
||||
fi
|
||||
|
||||
while [ true ] ; do
|
||||
while [ -f "$LOCKDIR/$LOCKFILE_SLEEP" ] ; do
|
||||
usleep 100000
|
||||
done
|
||||
if [ -f "$LOCKDIR/$LOCKFILE" ] ; then
|
||||
break
|
||||
fi
|
||||
|
@ -24,12 +24,22 @@
|
||||
|
||||
LOCKDIR="/var/lock/"
|
||||
LOCKFILE="tvheadend.disabled"
|
||||
LOCKFILE_SLEEP="tvheadend.sleep"
|
||||
|
||||
ADDON_BIN="tvheadend"
|
||||
|
||||
mkdir -p "$LOCKDIR"
|
||||
touch "$LOCKDIR/$LOCKFILE"
|
||||
|
||||
if [ "$(pidof $ADDON_BIN)" ];then
|
||||
killall $ADDON_BIN
|
||||
if [ ! -e "$LOCKDIR/$LOCKFILE_SLEEP" ] ; then
|
||||
touch "$LOCKDIR/$LOCKFILE"
|
||||
fi
|
||||
|
||||
if [ "$(pidof $ADDON_BIN)" ] ; then
|
||||
killall -q $ADDON_BIN
|
||||
for seq in `seq 1 10` ; do
|
||||
if [ ! "$(pidof $ADDON_BIN)" ] ; then
|
||||
break
|
||||
fi
|
||||
usleep 200000
|
||||
done
|
||||
killall -q -9 $ADDON_BIN
|
||||
fi
|
||||
|
@ -26,40 +26,29 @@ ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.multimedia.tvheadend"
|
||||
ADDON_SETTINGS="$ADDON_HOME/settings.xml"
|
||||
REMOVE_MODULES=`grep REMOVE_MODULES $ADDON_SETTINGS | sed 's|.*value="\([^"]*\)".*|\1|g'`
|
||||
|
||||
LOCKFILE="/var/lock/tvheadend.sleep"
|
||||
LOCKFILE_SLEEP="/var/lock/tvheadend.sleep"
|
||||
|
||||
ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.tvheadend"
|
||||
|
||||
case "$1" in
|
||||
hibernate|suspend)
|
||||
hibernate|suspend|pre)
|
||||
if [ "$(pidof tvheadend)" ];then
|
||||
progress "Shutting down HTS TVHeadend for suspending..."
|
||||
xbmc-send -a "Notification(tvheadend, Shutting down HTS TVHeadend for suspend..., 5000, $ADDON_DIR/icon.png)"
|
||||
touch $LOCKFILE_SLEEP
|
||||
tvheadend.stop
|
||||
touch $LOCKFILE
|
||||
for module in $REMOVE_MODULES ; do
|
||||
rmmod -w $module
|
||||
done
|
||||
fi
|
||||
;;
|
||||
|
||||
thaw|resume)
|
||||
if [ -f "$LOCKFILE" ] ; then
|
||||
thaw|resume|post)
|
||||
if [ -f "$LOCKFILE_SLEEP" ] ; then
|
||||
progress "Restarting HTS TVHeadend for wakeup..."
|
||||
xbmc-send -a "Notification(tvheadend, Restarting HTS TVHeadend for wakeup..., 5000, $ADDON_DIR/icon.png)"
|
||||
for module in $REMOVE_MODULES ; do
|
||||
modprobe $module
|
||||
done
|
||||
tvheadend.stop
|
||||
for seq in `seq 1 10` ; do
|
||||
if [ ! "$(pidof tvheadend)" ];then
|
||||
break
|
||||
fi
|
||||
usleep 500000
|
||||
done
|
||||
killall -9 tvheadend &>/dev/null
|
||||
rm -rf "$LOCKFILE"
|
||||
tvheadend.start
|
||||
rm -rf "$LOCKFILE_SLEEP"
|
||||
fi
|
||||
;;
|
||||
*) exit $NA
|
||||
|
Loading…
x
Reference in New Issue
Block a user