mirror of
https://github.com/LibreELEC/LibreELEC.tv.git
synced 2025-07-27 20:56:55 +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/"
|
LOCKDIR="/var/lock/"
|
||||||
LOCKFILE="vdr.disabled"
|
LOCKFILE="vdr.disabled"
|
||||||
|
LOCKFILE_SLEEP="vdr.sleep"
|
||||||
|
|
||||||
ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.vdr-addon"
|
ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.vdr-addon"
|
||||||
ADDON_HOME="$HOME/.xbmc/userdata/addon_data/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
|
if [ ! "$(pidof vdr.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
|
||||||
@ -160,6 +165,9 @@ if [ ! "$(pidof vdr.bin)" ];then
|
|||||||
rm -rf "$LOCKDIR/$LOCKFILE"
|
rm -rf "$LOCKDIR/$LOCKFILE"
|
||||||
fi
|
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
|
||||||
umount /var/run/vdr 2>&1
|
umount /var/run/vdr 2>&1
|
||||||
break
|
break
|
||||||
|
@ -24,11 +24,20 @@
|
|||||||
|
|
||||||
LOCKDIR="/var/lock/"
|
LOCKDIR="/var/lock/"
|
||||||
LOCKFILE="vdr.disabled"
|
LOCKFILE="vdr.disabled"
|
||||||
|
LOCKFILE_SLEEP="vdr.sleep"
|
||||||
|
|
||||||
mkdir -p "$LOCKDIR"
|
mkdir -p "$LOCKDIR"
|
||||||
touch "$LOCKDIR/$LOCKFILE"
|
if [ ! -e "$LOCKDIR/$LOCKFILE_SLEEP" ] ; then
|
||||||
|
touch "$LOCKDIR/$LOCKFILE"
|
||||||
if [ "$(pidof vdr.bin)" ];then
|
|
||||||
killall vdr.bin
|
|
||||||
fi
|
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"
|
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/vdr.sleep"
|
LOCKFILE_SLEEP="/var/lock/vdr.sleep"
|
||||||
|
|
||||||
ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.vdr-addon"
|
ADDON_DIR="$HOME/.xbmc/addons/service.multimedia.vdr-addon"
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
hibernate|suspend)
|
hibernate|suspend|pre)
|
||||||
if [ "$(pidof vdr.bin)" ];then
|
if [ "$(pidof vdr.bin)" ];then
|
||||||
progress "Shutting down vdr for suspending..."
|
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
|
vdr.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 vdr for wakeup..."
|
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
|
for module in $REMOVE_MODULES ; do
|
||||||
modprobe $module
|
modprobe $module
|
||||||
done
|
done
|
||||||
vdr.stop
|
rm -rf "$LOCKFILE_SLEEP"
|
||||||
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
|
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*) exit $NA
|
*) exit $NA
|
||||||
|
Loading…
x
Reference in New Issue
Block a user