Hi,
ich habe mir einen neuen Server mit Raspian Jessie aufgesetzt. Ich möchte nun via Watchdog meine Oscam überwachen und bei bedarf Neustarten. Dazu habe ich mittels "crontab -e" einen Cronjob erstellt, der laut Syslog auch alle 5min ausgeführt wird. */5 * * * * root /usr/script/oscam-watchdog.sh #root Crontab Teste ob OScam laeuft (alle 5 Minuten)
Nach manuellem abschalten der Oscam wird der Job zwar ausgeführt, es passier aber nichts. Auszug aus dem Log:
Wenn ich das Script manuell Starte, bekomme ich folgende Meldung:
Eine E-mail geht raus, dass Oscam vom Script gestartet wurde. Oscam wurde aber nicht gestartet. Dies erreiche ich nur durch Eingabe von: /usr/local/bin/oscam -b
Hier mal die Scripte
oscam-watchdog.sh unter /usr/script
Und hier das Oscam Script unter /etc/init.d
PIDfile in der oscam.conf ist unter /var/run/oscam/oscam.pid
Das PIDfile funktioniert auch beim Start der Oscam ist es da.
Hat jemand eine Idee ?
Gruß Rooki
ich habe mir einen neuen Server mit Raspian Jessie aufgesetzt. Ich möchte nun via Watchdog meine Oscam überwachen und bei bedarf Neustarten. Dazu habe ich mittels "crontab -e" einen Cronjob erstellt, der laut Syslog auch alle 5min ausgeführt wird. */5 * * * * root /usr/script/oscam-watchdog.sh #root Crontab Teste ob OScam laeuft (alle 5 Minuten)
Nach manuellem abschalten der Oscam wird der Job zwar ausgeführt, es passier aber nichts. Auszug aus dem Log:
Jan 5 09:45:01 RPI2 CRON[1640]: (root) CMD (root /usr/script/oscam-watchdog.sh #root Crontab Teste ob OScam laeuft (alle 5 Minuten))
Jan 5 09:45:01 RPI2 CRON[1633]: (CRON) info (No MTA installed, discarding output)
Wenn ich das Script manuell Starte, bekomme ich folgende Meldung:
root@RPI2:/usr/script# ./oscam-watchdog.sh
[....] Starting oscam (via systemctl): oscam.serviceWarning: Unit file of oscam.service changed on disk, 'systemctl daemon-reload' recommended.
. ok
Jan 05 09:51:35 rpi2 sendEmail[1708]: Email was sent successfully!
root@RPI2:/usr/script#
Hier mal die Scripte
oscam-watchdog.sh unter /usr/script
#!/bin/bash
# OScam-Watchdog - v0.1
#
# CONFIG - START
# OScam binary name (eg.: oscam or oscam.x86 or oscam.x86_64)
OSCAMbin="oscam" #Name deiner oscam Binary
# OScam start/stop/restart script
OScamScript="/etc/init.d/oscam" #Speicherort des Scripts
# Watchdog Logfile
OSCAMwatchlog="/var/log/OScam-watchdog.log" #Pfad des Wachtdog-Logs
# EMail verschicken bei restart? [0/1] (Vorraussetzung: apt-get install sendEmail)
CRASHMAIL="1" #0=Aus, 1=Ein
# Maileinstellungen
SMTPFROM='add@arcor.de' #Absender
SMTPTO='ich@arcor.de' #Empfänger
SMTPSERVER='mail.arcor.de' #SMTP-Server
SMTPUSER='xxxx' #Benutzer
SMTPPASS='pass' #Passwort
# CONFIG - END
_maxlogsize="1024"
TIMESTAMP2=`date +"%Y-%m-%d %H:%M"`
SUBJECT="OScam Watchdog"
MESSAGE="OScam wurde auf `hostname -f` vom Watchdog Überwachungsscript neu gestartet!"
# check size of OSCAMwatchlog and rotate
if [ -f "$OSCAMwatchlog" ]&&[ "$(stat --printf="%s" $OSCAMwatchlog)" -gt "$_maxlogsize" ]; then
echo "resetting log $OSCAMwatchlog"
mv -f $OSCAMwatchlog ${OSCAMwatchlog}.1 >/dev/null 2>&1
touch $OSCAMwatchlog
fi
#MAIN
CHECK=$(ps aux|grep -v grep|grep -v $0|grep -w $OSCAMbin)
if [[ ! -z "$CHECK" ]] ; then
echo -e "$TIMESTAMP2\tWatchdog - OSCam Server laeuft"
else
echo -e "$TIMESTAMP2\tWatchdog - OSCam wurde neu gestartet" >>$OSCAMwatchlog
$OScamScript start
if [ $CRASHMAIL == 1 ]; then
sendEmail -f $SMTPFROM -t $SMTPTO -u $SUBJECT -m $MESSAGE -s $SMTPSERVER -xu "$SMTPUSER" -xp "$SMTPPASS"
fi
fi
exit 0
Und hier das Oscam Script unter /etc/init.d
#!/bin/sh
### BEGIN INIT INFO
# Provides: oscam
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: open source cam
### END INIT INFO
# /etc/init.d/oscam
#
set -e
DAEMON=/usr/local/bin/oscam
NAME=oscam
OPTIONS=-b
PIDFILE=/var/run/oscam/oscam.pid
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
test -x $DAEMON || exit 0
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Starting oscam" "oscam"
[ -d /var/run/oscam ] || mkdir -p /var/run/oscam
start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $OPTIONS
log_end_msg $?
;;
stop)
log_daemon_msg "Stopping oscam" "oscam"
start-stop-daemon --stop --quiet --pidfile $PIDFILE
log_end_msg $?
rm -f $PIDFILE
;;
restart)
$0 stop && sleep 2 && $0 start
;;
reload|force-reload)
echo "Reloading $NAME configuration files"
start-stop-daemon --stop --pidfile $PIDFILE --signal 1 --exec $DAEMON
echo "."
;;
status)
pidofproc -p $PIDFILE $DAEMON >/dev/null
status=$?
if [ $status -eq 0 ]; then
log_success_msg "oscam is running."
else
log_failure_msg "oscam is not running."
fi
exit $status
;;
*)
echo "Usage: /usr/local/bin/$NAME {start|stop|restart|reload}"
exit 1
;;
esac
exit 0
PIDfile in der oscam.conf ist unter /var/run/oscam/oscam.pid
Das PIDfile funktioniert auch beim Start der Oscam ist es da.
Hat jemand eine Idee ?
Gruß Rooki
Zuletzt bearbeitet von einem Moderator: