mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-24 11:16:51 +00:00
vdr: rework start/stop/suspend. prepare for systemd
This commit is contained in:
parent
6bf21a6fcd
commit
3496e47da4
@ -32,6 +32,7 @@ check_tmpfs_mount() {
|
||||
|
||||
LOCKDIR="/var/lock/"
|
||||
LOCKFILE="vdr.disabled"
|
||||
LOCKFILE_SLEEP="vdr.sleep"
|
||||
|
||||
ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.vdr-addon"
|
||||
ADDON_HOME="$HOME/.xbmc/userdata/addon_data/service.multimedia.vdr-addon"
|
||||
@ -148,6 +149,10 @@ MYDATA
|
||||
|
||||
)
|
||||
|
||||
rm -rf "$LOCKDIR/$LOCKFILE_SLEEP" &>/dev/null
|
||||
vdr.stop
|
||||
rm -rf "$LOCKDIR/$LOCKFILE" &>/dev/null
|
||||
|
||||
if [ ! "$(pidof vdr.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
|
||||
@ -160,6 +165,9 @@ if [ ! "$(pidof vdr.bin)" ];then
|
||||
rm -rf "$LOCKDIR/$LOCKFILE"
|
||||
fi
|
||||
while [ true ] ; do
|
||||
while [ -f "$LOCKDIR/$LOCKFILE_SLEEP" ] ; do
|
||||
usleep 100000
|
||||
done
|
||||
if [ -f "$LOCKDIR/$LOCKFILE" ] ; then
|
||||
umount /var/run/vdr 2>&1
|
||||
break
|
||||
|
@ -24,11 +24,20 @@
|
||||
|
||||
LOCKDIR="/var/lock/"
|
||||
LOCKFILE="vdr.disabled"
|
||||
LOCKFILE_SLEEP="vdr.sleep"
|
||||
|
||||
mkdir -p "$LOCKDIR"
|
||||
touch "$LOCKDIR/$LOCKFILE"
|
||||
|
||||
if [ "$(pidof vdr.bin)" ];then
|
||||
killall vdr.bin
|
||||
if [ ! -e "$LOCKDIR/$LOCKFILE_SLEEP" ] ; then
|
||||
touch "$LOCKDIR/$LOCKFILE"
|
||||
fi
|
||||
|
||||
if [ "$(pidof vdr.bin)" ] ; then
|
||||
killall -q vdr.bin
|
||||
for seq in `seq 1 10` ; do
|
||||
if [ ! "$(pidof vdr.bin)" ] ; then
|
||||
break
|
||||
fi
|
||||
usleep 200000
|
||||
done
|
||||
killall -q -9 vdr.bin
|
||||
fi
|
||||
|
@ -27,39 +27,28 @@ ADDON_CONFIG_DIR="$ADDON_HOME/config"
|
||||
ADDON_SETTINGS="$ADDON_HOME/settings.xml"
|
||||
REMOVE_MODULES=`grep REMOVE_MODULES $ADDON_SETTINGS | sed 's|.*value="\([^"]*\)".*|\1|g'`
|
||||
|
||||
LOCKFILE="/var/lock/vdr.sleep"
|
||||
LOCKFILE_SLEEP="/var/lock/vdr.sleep"
|
||||
|
||||
ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.vdr-addon"
|
||||
|
||||
case "$1" in
|
||||
hibernate|suspend)
|
||||
hibernate|suspend|pre)
|
||||
if [ "$(pidof vdr.bin)" ];then
|
||||
progress "Shutting down vdr for suspending..."
|
||||
xbmc-send -a "Notification(vdr, Shutting down vdr for suspend..., 5000, $ADDON_DIR/icon.png)"
|
||||
touch $LOCKFILE_SLEEP
|
||||
vdr.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 vdr for wakeup..."
|
||||
xbmc-send -a "Notification(vdr, Restarting vdr for wakeup..., 5000, $ADDON_DIR/icon.png)"
|
||||
for module in $REMOVE_MODULES ; do
|
||||
modprobe $module
|
||||
done
|
||||
vdr.stop
|
||||
for seq in `seq 1 10` ; do
|
||||
if [ ! "$(pidof vdr.bin)" ];then
|
||||
break
|
||||
fi
|
||||
usleep 500000
|
||||
done
|
||||
killall -9 vdr.bin &>/dev/null
|
||||
rm -rf "$LOCKFILE"
|
||||
vdr.start
|
||||
rm -rf "$LOCKFILE_SLEEP"
|
||||
fi
|
||||
;;
|
||||
*) exit $NA
|
||||
|
Loading…
x
Reference in New Issue
Block a user