mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-28 05:06:43 +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/"
|
LOCKDIR="/var/lock/"
|
||||||
LOCKFILE="tvheadend.disabled"
|
LOCKFILE="tvheadend.disabled"
|
||||||
|
LOCKFILE_SLEEP="tvheadend.sleep"
|
||||||
|
|
||||||
ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.tvheadend"
|
ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.tvheadend"
|
||||||
ADDON_SYS_DIR="/usr/lib/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.default
|
||||||
. /var/config/tvheadend.conf
|
. /var/config/tvheadend.conf
|
||||||
|
|
||||||
|
rm -rf "$LOCKDIR/$LOCKFILE_SLEEP" &>/dev/null
|
||||||
|
tvheadend.stop
|
||||||
|
rm -rf "$LOCKDIR/$LOCKFILE" &>/dev/null
|
||||||
if [ ! "$(pidof $ADDON_BIN)" ]; then
|
if [ ! "$(pidof $ADDON_BIN)" ]; then
|
||||||
# start userspace DVB driver/addon
|
# 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
|
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
|
. $driver_dvb
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ -f "$LOCKDIR/$LOCKFILE" ] ; then
|
|
||||||
rm -rf "$LOCKDIR/$LOCKFILE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
while [ true ] ; do
|
while [ true ] ; do
|
||||||
|
while [ -f "$LOCKDIR/$LOCKFILE_SLEEP" ] ; do
|
||||||
|
usleep 100000
|
||||||
|
done
|
||||||
if [ -f "$LOCKDIR/$LOCKFILE" ] ; then
|
if [ -f "$LOCKDIR/$LOCKFILE" ] ; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
|
@ -24,12 +24,22 @@
|
|||||||
|
|
||||||
LOCKDIR="/var/lock/"
|
LOCKDIR="/var/lock/"
|
||||||
LOCKFILE="tvheadend.disabled"
|
LOCKFILE="tvheadend.disabled"
|
||||||
|
LOCKFILE_SLEEP="tvheadend.sleep"
|
||||||
|
|
||||||
ADDON_BIN="tvheadend"
|
ADDON_BIN="tvheadend"
|
||||||
|
|
||||||
mkdir -p "$LOCKDIR"
|
mkdir -p "$LOCKDIR"
|
||||||
touch "$LOCKDIR/$LOCKFILE"
|
if [ ! -e "$LOCKDIR/$LOCKFILE_SLEEP" ] ; then
|
||||||
|
touch "$LOCKDIR/$LOCKFILE"
|
||||||
if [ "$(pidof $ADDON_BIN)" ];then
|
fi
|
||||||
killall $ADDON_BIN
|
|
||||||
|
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
|
fi
|
||||||
|
@ -26,40 +26,29 @@ ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.multimedia.tvheadend"
|
|||||||
ADDON_SETTINGS="$ADDON_HOME/settings.xml"
|
ADDON_SETTINGS="$ADDON_HOME/settings.xml"
|
||||||
REMOVE_MODULES=`grep REMOVE_MODULES $ADDON_SETTINGS | sed 's|.*value="\([^"]*\)".*|\1|g'`
|
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"
|
ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.tvheadend"
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
hibernate|suspend)
|
hibernate|suspend|pre)
|
||||||
if [ "$(pidof tvheadend)" ];then
|
if [ "$(pidof tvheadend)" ];then
|
||||||
progress "Shutting down HTS TVHeadend for suspending..."
|
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
|
tvheadend.stop
|
||||||
touch $LOCKFILE
|
|
||||||
for module in $REMOVE_MODULES ; do
|
for module in $REMOVE_MODULES ; do
|
||||||
rmmod -w $module
|
rmmod -w $module
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
thaw|resume)
|
thaw|resume|post)
|
||||||
if [ -f "$LOCKFILE" ] ; then
|
if [ -f "$LOCKFILE_SLEEP" ] ; then
|
||||||
progress "Restarting HTS TVHeadend for wakeup..."
|
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
|
for module in $REMOVE_MODULES ; do
|
||||||
modprobe $module
|
modprobe $module
|
||||||
done
|
done
|
||||||
tvheadend.stop
|
rm -rf "$LOCKFILE_SLEEP"
|
||||||
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
|
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*) exit $NA
|
*) exit $NA
|
||||||
|
Loading…
x
Reference in New Issue
Block a user