rendered paste body(main scirpt to run is called "vdrddfxine"
#! /bin/sh
#
# vdr start-stop script
#
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
NAME=vdrddfxine
DESC="VDR - Linux Video Disk Recorder"
export LANG="en_US.iso8859-1"
export LD_ASSUME_KERNEL=2.4.1
#export LD_ASSUME_KERNEL=2.4.19
# Defaults - don't touch, edit /etc/default/vdrcbxine
ENABLED=0
test -f /etc/default/vdrcbxine && . /etc/default/vdrcbxine
test "$ENABLED" != "0" || exit 0
if [ ! -e "${SVDRP}" ]; then
echo -e "ERROR: ${SVDRP} was not detected. Exiting. \n"
exit 0
fi
case "$1" in
start)
if ! ps -C vdr > /dev/null 2>&1; then
cd /usr/local/bin
./insdvb.sh load
echo -n "Starting $DESC: $NAME"
# if [ -e "/usr/bin/mplayer" ]; then
# /usr/bin/mplayer -vo directfb /etc/vdrb/VDRboot-NTSC.mpeg
# sleep 2
# killall mplayer
# sleep 3
# killall directfb
# sleep 3
# fi
# DVDR is /dev/cdrom and Loopdevice is /loopdevice -P'dvd -C/dev/cdrom'
./$DAEMON -v $VIDEO_DIR -E $EPG_DIR -c $CFG_DIR $OPTIONS \
$PLUGINS -P'xine -r' -P'remote -i /dev/input/event3' &
# $PLUGINS -P'mp3 -C /etc/vdr -m /etc/vdr/plugins/mount.sh -i /etc/vdr/plugins/image_convert.sh -c /etc/vdr/images' \
# -P'mplayer -M /etc/vdr/plugins/mplayer.sh -m /etc/vdr/plugins/mount.sh' -P'dvd -C/dev/cdrom' &
echo "."
sleep 12
svdrpsend.pl -d localhost "MESG VDR Loading Sequence Completed" 2>/dev/null 1>/dev/null
svdrpsend.pl -d localhost "QUIT" 2>/dev/null 1>/dev/null
/usr/local/bin/startdfxine.sh
else
echo -e "VDR is already running..\n"
fi
;;
stop)
if ps -C vdr > /dev/null 2>&1; then
cd /usr/local/bin
svdrpsend.pl -d localhost "MESG VDR Shutdown Sequence Initialized" 2>/dev/null 1>/dev/null
svdrpsend.pl -d localhost "QUIT" 2>/dev/null 1>/dev/null
echo -n "Stopping $DESC: $NAME"
echo "."
sleep 2
killall -q -TERM $DAEMON
sleep 5
./insdvb.sh unload
killall -q df_xine
# ln -fs /dev/hdc /dev/cdrom
else
echo -e "VDR is not running..\n"
fi
;;
restart|force-reload)
if ps -C vdr > /dev/null 2>&1; then
cd /usr/local/bin
svdrpsend.pl -d localhost "MESG VDR Restart Procedure Initialized" 2>/dev/null 1>/dev/null
svdrpsend.pl -d localhost "QUIT" 2>/dev/null 1>/dev/null
echo -n "Restarting $DESC: $NAME"
echo "."
sleep 2
killall -q -TERM $DAEMON
sleep 5
./insdvb.sh reload
if [ -e "/usr/bin/mplayer" ]; then
/usr/bin/mplayer -frames 175 -vo mpegpes /etc/vdr/discovery2005.mpg 2>/dev/null 1>/dev/null
# sleep 7
# killall -q -TERM mplayer
fi
./$DAEMON -v $VIDEO_DIR -E $EPG_DIR -c $CFG_DIR $OPTIONS \
$PLUGINS &
# $PLUGINS -P'mp3 -C /etc/vdr -m /etc/vdr/plugins/mount.sh -i /etc/vdr/plugins/image_convert.sh -c /etc/vdr/images' \
# -P'mplayer -M /etc/vdr/plugins/mplayer.sh -m /etc/vdr/plugins/mount.sh' -P'dvd -C/dev/cdrom' &
sleep 8
svdrpsend.pl -d localhost "MESG VDR Restart Procedure Completed" 2>/dev/null 1>/dev/null
svdrpsend.pl -d localhost "QUIT" 2>/dev/null 1>/dev/null
/usr/local/bin/startdfxine.sh
else
echo -e "VDR is not running..\n"
fi
;;
*)
N=/etc/init.d/$NAME
echo "Use: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0
(script calls to "/etc/default/vdrcbxine"
# /etc/default/vdr
# Default config
# 07-31-05
# Change to 1 to enable vdr's init-script
ENABLED=1
# Which vdr-binary to start
# (vdr-kbd, vdr-lirc, vdr-daemon or vdr-rcu)
DAEMON="vdr"
# svdrpsend.pl location
SVDRP="/usr/local/bin/svdrpsend.pl"
# Video-Directory
VIDEO_DIR="/video0"
# Config-Directory
CFG_DIR="/etc/vdrbxine"
# EPG-Directory
EPG_DIR="/etc/vdrbxine"
# Plugins to load for 1.3.x
PLUGINS="-Pmplayercluster -Pstreamdev-server -Psc -Pyaepg -Pfemon -Pprefermenu -Psysinfo -Ptaste -Ptext2skin -Pepgsearch -Ptvonscreen -Pscreen$
# Options that will be passed to vdr's commandline
# for example: OPTIONS="-w 15 --port=0"
# OPTIONS="-d -l 3 -w 0"
OPTIONS="--terminal=/dev/tty8 -l 3 -w 0"
(script all calls to "SVDRP"
#!/usr/bin/perl
use Socket;
use Getopt::Std;
$Usage = qq{
Usage: $0 options command...
Options: -d hostname destination hostname (default: localhost)
-p port SVDRP port number (default: 2001)
};
die $Usage if (!$ARGV[0] || !getopts("d:p:"));
$Dest = $opt_d || "localhost";
$Port = $opt_p || 2001;
$Cmd = "@ARGV" || Error("missing command");
$Timeout = 10; # max. seconds to wait for response
$SIG{ALRM} = sub { Error("timeout"); };
alarm($Timeout);
$iaddr = inet_aton($Dest) || Error("no host: $Dest");
$paddr = sockaddr_in($Port, $iaddr);
$proto = getprotobyname('tcp');
socket(SOCK, PF_INET, SOCK_STREAM, $proto) || Error("socket: $!");
connect(SOCK, $paddr) || Error("connect: $!");
select(SOCK); $| = 1;
Receive();
Send($Cmd);
Send("quit");
close(SOCK) || Error("close: $!");
sub Send
{
my $cmd = shift || Error("no command to send");
print SOCK "$cmd\r\n";
Receive();
}
sub Receive
{
while (<SOCK>) {
print STDOUT $_;
last if substr($_, 3, 1) ne "-";
}
}
sub Error
{
print STDERR "@_\n";
close(SOCK);
exit 0;
}