You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
299 lines
4.5 KiB
299 lines
4.5 KiB
#!/bin/sh
|
|
|
|
. /etc/init.d/globals
|
|
|
|
# Camd-Fileflags
|
|
FLAGDIR="/var/etc"
|
|
|
|
F_OPENVPN=".openvpn"
|
|
|
|
F_DOSCAM=".doscam"
|
|
F_OSCAM=".oscam"
|
|
F_OSMOD=".osmod"
|
|
F_NCAM=".ncam"
|
|
F_MGCAMD=".mgcamd"
|
|
F_CCCAM=".cccam"
|
|
F_GBOX=".gbox"
|
|
|
|
doscam_action()
|
|
{
|
|
case $1 in
|
|
"start" )
|
|
SHOWINFO "start camd_datefix"
|
|
/etc/init.d/camd_datefix start doscam
|
|
SHOWINFO "start doscam"
|
|
/var/bin/doscam -b -w0
|
|
if [ -e $FLAGDIR/$F_MGCAMD ]; then
|
|
sleep 15
|
|
fi
|
|
;;
|
|
"stop" )
|
|
SHOWINFO "stop camd_datefix"
|
|
/etc/init.d/camd_datefix stop doscam
|
|
SHOWINFO "stop doscam"
|
|
killall doscam
|
|
sleep 1
|
|
rm -rf /tmp/doscam.*
|
|
rm -rf /tmp/ecm.info
|
|
;;
|
|
* )
|
|
doscam_action "stop"
|
|
sleep 1
|
|
doscam_action "start"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
oscam_action()
|
|
{
|
|
case $1 in
|
|
"start" )
|
|
SHOWINFO "start camd_datefix"
|
|
/etc/init.d/camd_datefix start oscam
|
|
SHOWINFO "start oscam"
|
|
/var/bin/oscam -b
|
|
if [ -e $FLAGDIR/$F_MGCAMD ]; then
|
|
sleep 15
|
|
fi
|
|
;;
|
|
"stop" )
|
|
SHOWINFO "stop camd_datefix"
|
|
/etc/init.d/camd_datefix stop oscam
|
|
SHOWINFO "stop oscam"
|
|
killall oscam
|
|
sleep 1
|
|
rm -rf /tmp/oscam.*
|
|
rm -rf /tmp/ecm.info
|
|
;;
|
|
* )
|
|
oscam_action "stop"
|
|
sleep 1
|
|
oscam_action "start"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
osmod_action()
|
|
{
|
|
case $1 in
|
|
"start" )
|
|
SHOWINFO "start camd_datefix"
|
|
/etc/init.d/camd_datefix start osmod
|
|
SHOWINFO "start osmod"
|
|
/var/bin/osmod -b
|
|
if [ -e $FLAGDIR/$F_MGCAMD ]; then
|
|
sleep 15
|
|
fi
|
|
;;
|
|
"stop" )
|
|
SHOWINFO "stop camd_datefix"
|
|
/etc/init.d/camd_datefix stop osmod
|
|
SHOWINFO "stop osmod"
|
|
killall osmod
|
|
sleep 1
|
|
rm -rf /tmp/osmod.*
|
|
rm -rf /tmp/ecm.info
|
|
;;
|
|
* )
|
|
osmod_action "stop"
|
|
sleep 1
|
|
osmod_action "start"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
ncam_action()
|
|
{
|
|
case $1 in
|
|
"start" )
|
|
SHOWINFO "start camd_datefix"
|
|
/etc/init.d/camd_datefix start ncam
|
|
SHOWINFO "start ncam"
|
|
/var/bin/ncam -b
|
|
if [ -e $FLAGDIR/$F_MGCAMD ]; then
|
|
sleep 15
|
|
fi
|
|
;;
|
|
"stop" )
|
|
SHOWINFO "stop camd_datefix"
|
|
/etc/init.d/camd_datefix stop ncam
|
|
SHOWINFO "stop ncam"
|
|
killall ncam
|
|
sleep 1
|
|
rm -rf /tmp/ncam.*
|
|
rm -rf /tmp/ecm.info
|
|
;;
|
|
* )
|
|
ncam_action "stop"
|
|
sleep 1
|
|
ncam_action "start"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
mgcamd_action()
|
|
{
|
|
case $1 in
|
|
"start" )
|
|
SHOWINFO "start mgcamd"
|
|
{ /var/bin/mgcamd; pzapit -rz; } &
|
|
;;
|
|
"stop" )
|
|
SHOWINFO "stop mgcamd"
|
|
kill $( cat /tmp/mgcamd.pid )
|
|
sleep 1
|
|
rm -rf /tmp/mgstat.info
|
|
rm -rf /tmp/mgshare.info
|
|
rm -rf /tmp/ecm.info
|
|
rm -rf /tmp/pid.info
|
|
rm -rf /tmp/ca_cache.list
|
|
rm -rf /tmp/cccam.info
|
|
rm -rf /tmp/ecm.info
|
|
rm -rf /tmp/mg.info
|
|
;;
|
|
* )
|
|
mgcamd_action "stop"
|
|
sleep 1
|
|
mgcamd_action "start"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
cccam_action()
|
|
{
|
|
case $1 in
|
|
"start" )
|
|
SHOWINFO "start cccam"
|
|
/var/bin/cccam &
|
|
sleep 5
|
|
;;
|
|
"stop" )
|
|
SHOWINFO "stop cccam"
|
|
killall cccam
|
|
;;
|
|
* )
|
|
cccam_action "stop"
|
|
sleep 1
|
|
cccam_action "start"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
gbox_action()
|
|
{
|
|
case $1 in
|
|
"start" )
|
|
SHOWINFO "start gbox"
|
|
/var/bin/gbox &
|
|
sleep 10
|
|
;;
|
|
"stop" )
|
|
SHOWINFO "stop gbox"
|
|
touch /tmp/gbox.kill
|
|
sleep 1
|
|
rm -rf /tmp/pid.info
|
|
rm -rf /tmp/ecm.info
|
|
rm -rf /tmp/gbox.pid
|
|
rm -rf /tmp/gbox.ver
|
|
rm -rf /tmp/gbox.kill
|
|
;;
|
|
* )
|
|
gbox_action "stop"
|
|
sleep 1
|
|
gbox_action "start"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
check_openvpn()
|
|
{
|
|
if [ -e $FLAGDIR/$F_OPENVPN ]; then
|
|
# wait i seconds for openvpn
|
|
i=10
|
|
while [ $i -gt 0 ]; do
|
|
if pidof openvpn > /dev/null; then
|
|
SHOWINFO "openvpn is started"
|
|
i=-1 # leave loop
|
|
else
|
|
SHOWINFO "wait for openvpn ... $i"
|
|
sleep 1
|
|
fi
|
|
i=$(($i-1))
|
|
if [ $i = 0 ]; then
|
|
SHOWINFO "continue without openvpn"
|
|
fi
|
|
done
|
|
fi
|
|
}
|
|
|
|
camd_action()
|
|
{
|
|
case $1 in
|
|
"doscam")
|
|
doscam_action $ACTION
|
|
;;
|
|
"oscam")
|
|
oscam_action $ACTION
|
|
;;
|
|
"osmod")
|
|
osmod_action $ACTION
|
|
;;
|
|
"ncam")
|
|
ncam_action $ACTION
|
|
;;
|
|
"mgcamd")
|
|
mgcamd_action $ACTION
|
|
;;
|
|
"cccam")
|
|
cccam_action $ACTION
|
|
;;
|
|
"gbox")
|
|
gbox_action $ACTION
|
|
;;
|
|
*)
|
|
if [ -e $FLAGDIR/$F_DOSCAM ]; then
|
|
doscam_action $ACTION
|
|
fi
|
|
|
|
if [ -e $FLAGDIR/$F_OSCAM ]; then
|
|
oscam_action $ACTION
|
|
fi
|
|
|
|
if [ -e $FLAGDIR/$F_OSMOD ]; then
|
|
osmod_action $ACTION
|
|
fi
|
|
|
|
if [ -e $FLAGDIR/$F_NCAM ]; then
|
|
ncam_action $ACTION
|
|
fi
|
|
|
|
if [ -e $FLAGDIR/$F_MGCAMD ]; then
|
|
mgcamd_action $ACTION
|
|
fi
|
|
|
|
if [ -e $FLAGDIR/$F_CCCAM ]; then
|
|
cccam_action $ACTION
|
|
fi
|
|
|
|
if [ -e $FLAGDIR/$F_GBOX ]; then
|
|
gbox_action $ACTION
|
|
fi
|
|
;;
|
|
esac
|
|
}
|
|
|
|
case $1 in
|
|
"start")
|
|
ACTION="start"
|
|
check_openvpn
|
|
camd_action $2
|
|
;;
|
|
"stop")
|
|
ACTION="stop"
|
|
camd_action $2
|
|
;;
|
|
*)
|
|
ACTION="restart"
|
|
camd_action $2
|
|
;;
|
|
esac
|
|
|