Verzeichniss vorbereiten:
mkdir -p /var/emu/camd3
Binary in zuvor erstelltes Verzeichniss kopieren und ggf danach umbennen:
cd /var/emu/camd3/ && mv camd3 camd3.x86
Anpassungen an /var/emu/script/functions.sh vornehmen:
nano /var/emu/script/functions.sh
Code: Alles auswählen
CDNAME="Camd3"
CDVERSION="camd3.x86"
CDBIN=$CAMBINS/camd3/$CDVERSION
CDCFG="$CAMCONFIGS/camd3.config"
CDSERVERS="$CAMCONFIGS/camd3.servers"
CDUSERS="$CAMCONFIGS/camd3.users"
CDLOGFILE="/var/log/ipc/camd3.log"
Code: Alles auswählen
#!/bin/bash
# IPC - MASTERSCRIPT (Camd3)
#
. /var/emu/script/functions.sh
readipccfg
[ -z $CDVERSION ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CDBIN ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CDCFG ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CRON ] && clear && echo -e "\033[1;31mIPC - Paket Konfigurationsfehler!\033[0m" && exit 1
CAMNAME="Camd3"
# This method starts Camd3
start_cam() {
if [ ! -z "$CDLOGFILE" ]; then
$CDBIN $CDCFG >$CDLOGFILE &
else
$CDBIN $CDCFG &
fi
if [ $? -ne "0" ]; then
echo "Fehler beim starten von $CAMNAME!"
fi
}
# This method starts Camd3 with Logging to Console
log_cam() {
$CDBIN
if [ $? -ne "0" ]; then
echo "\033[1;31mFehler beim starten von $CAMNAME!\033[0m"
fi
}
# This method stops Camd3
stop_cam() {
pkill -9 $CDVERSION
}
case "$1" in
start)
PID="$(ps auxw | grep -v grep | grep -v $0 | grep $CDVERSION | awk {'print $2'})"
if [[ ! -z $PID ]] ; then
echo "$CAMNAME : ist bereits gestartet"
else
start_cam
echo "$CAMNAME : gestartet"
if [[ $CRON == 1 ]]; then
PID="$(pgrep -x cron)"
if [[ ! -z $PID ]] ; then
dummy="1"
else
/etc/init.d/cron start > /dev/null
echo "Cron : gestartet"
fi
fi
fi
;;
lstart)
PID="$(ps auxw | grep -v grep | grep -v $0 | grep $CDVERSION | awk {'print $2'})"
if [[ ! -z $PID ]] ; then
echo "$CAMNAME : ist bereits gestartet"
else
log_cam
echo "$CAMNAME : wurde gestartet mit ConsolenLog"
fi
;;
stop)
PID="$(ps auxw | grep -v grep | grep -v $0 | grep $CDVERSION | awk {'print $2'})"
if [[ ! -z $PID ]] ; then
stop_cam
echo "$CAMNAME : beendet"
if [[ $CRON == 1 ]]; then
PID="$(pgrep -x cron)"
if [[ ! -z $PID ]] ; then
/etc/init.d/cron stop > /dev/null
echo "Cron : beendet"
else
echo "Cron : ist bereits beendet"
fi
fi
else
echo "$CAMNAME : ist bereits beendet"
fi
;;
restart)
echo "Restaring $CAMNAME"
stop_cam
sleep 3
start_cam
;;
help)
clear
less $CAMBINS/script/camd3-help.txt
;;
log)
clear
echo "$CAMNAME Log - Abbrechen mit [Strg]+[C] $(date +"%d.%m.%Y %H:%M")"
echo "==============================================================================="
echo ""
if [ -f $CDLOGFILE ] ; then
tail -f $CDLOGFILE
else
echo "Keine Logdatei vorhanden!"
fi
;;
*)
clear
echo -e "\033[1;37m$CAMNAME-Server IPC $IPCVERSION $(date +"%d.%m.%Y %H:%M")\033[0m"
echo "==============================================================================="
echo ""
echo -e "Befehlsliste: \033[1;31mcamd3\033[0m"
echo ""
echo -e "\033[1;37m Hilfe zu Befehlen\033[0m \033[1;31mhelp\033[0m"
echo -e "\033[1;37m Start, Stop, Restart\033[0m \033[0;37mstart | lstart | stop | restart\033[0m"
echo -e "\033[1;37m Logfile\033[0m \033[0;37mlog\033[0m"
echo ""
echo "==============================================================================="
echo ""
exit 1
;;
esac
exit 0
Code: Alles auswählen
#!/bin/bash
# IPC - Camd3-Watchdog
#
. /var/emu/script/functions.sh
[ -z $CDVERSION ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CDBIN ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
[ -z $CDCFG ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler!\033[0m" && exit 1
CAMNAME="Camd3"
SUBJECT="$CAMNAME Watchdog !"
MESSAGE="$CAMNAME wurde auf `hostname -f` vom Watchdog Überwachungsscript neu gestartet."
#MAIN
PID="$(pgrep -x $CDVERSION)"
if [[ ! -z $PID ]] ; then
echo "$TIMESTAMP2 Watchdog - $CAMNAME Server laeuft"
else
echo "$TIMESTAMP2 Watchdog - $CAMNAME wurde neu gestartet" >> $CAMLOGS/$CAMNAME-watchdog.log
/var/emu/script/camd3 start
readipccfg
[ $CRASHMAIL == 1 ] && mailsend "$SUBJECT" "$MESSAGE"
fi
exit 0
Code: Alles auswählen
Camd3-Server Befehldetails: (Scrollen mit Pfeiltasten, Beenden mit [Q])
===============================================================================
help
Zeigt diesen Hilfetext.
start
Startet den Camd3-Server.
lstart
Startet den Camd3-Server mit Consolenlog.
stop
Beendet den Camd3-Server.
restart
Beendet und startet den Camd3-Server-Prozess neu.
log
Zeigt was Camd3 gerade zu tun hat.
chmod a+x /var/emu/script/{camd3,camd3-watchdog.sh}
Symlink erstellen: ln -s /var/emu/script/camd3 /bin/camd3
Camd3 config Dateien (camd3.config, camd3.users, camd3.servers) kopieren nach: /var/etc/
Camd3 emu Dateien (camd3.keys, camd3.map, eep120.bin, rom120.bin) kopieren nach: /var/etc/
(oder echo a | i os camd3-softkey.sh ausführen)
Camd3 services Datei pw_start.services kopieren nach: /var/keys/
Camd3 emu keys regelmässig updaten lassen:
-> i jobs
Code: Alles auswählen
* 6 * * * root echo a | i os camd3-softkey.sh && /var/emu/script/camd3 restart >/dev/null 2>&1 #Camd3 emu keys updaten+restart (Taeglich um 06:00)
-> i jobs
Code: Alles auswählen
#Camd3
* * * * * root /var/emu/script/camd3-watchdog.sh #Teste ob Camd3 laeuft (jede Minute)
-> i as
Code: Alles auswählen
#Camd3 starten
/bin/camd3 start &
-> nano /var/etc/camd3.config
Code: Alles auswählen
UDP_PORT=12345
HTTP_PORT=9080
HTTP_ADMIN=meinlogin
HTTP_PASSWORD=meinpass
LOG_FILE=/var/log/ipc/camd3.log
-> nano /var/etc/camd3.users
Code: Alles auswählen
meinserver:meinserverpass
-> nano /var/etc/oscam.server
Code: Alles auswählen
[reader]
label = camd3emu
enable = 1
protocol = camd35
device = 127.0.0.1,12345
user = meinserver
password = meinserverpass
group = 1
-> nano /var/etc/CCcam.cfg
Code: Alles auswählen
L: 127.0.0.1 12345 meinserver meinserverpass 1801 001102