cron: ist bereits beendet !

Fragen, Probleme ... die sonst nirgends passen ...
opeg77
IPC Neuling
Beiträge: 10
Registriert: Di 14. Feb 2012, 12:19
Kontaktdaten:

cron: ist bereits beendet !

Beitrag von opeg77 »

Hallo,

mir ist da bezüglich "cron" ein Fehler aufgefallen. Wenn ich mit "o stop" oscam stoppe dann kommt die Meldung:

oscam: beendet
cron: ist bereits beendet


obwohl ich vorher nachgesehen hab mit "ps ax" und cron lief, ist schon komisch. Irgendwie muss sich "cron" ab und zu selbst beenden zumindest werden die Cron Befehle manchmal nicht ausgeführt. Das sehe ich dann im syslog wenn oscam zb. nicht am morgen neu gestartet wurde. Keine Ahnung wo das Problem liegt, das einzige was ich im "oscam" script geändert hab, ist das "camd3" bei start von oscam gleich mitgestartet wird und bei stop mit beendet wird.

Hier mal die Änderung im "oscam" script im ordner /var/emu/script:

Code: Alles auswählen

#!/bin/bash
# IPC - MASTERSCRIPT (OScam)
#

. /var/emu/script/functions.sh
readipccfg
[ -z $OSNAME ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler !\033[0m" && exit 1
[ -z $OSVERSION ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler !\033[0m" && exit 1
[ -z $OSBIN ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler !\033[0m" && exit 1
[ -z $OSCFG ] && clear && echo -e "\033[1;31mVariablen Konfigurationsfehler !\033[0m" && exit 1
[ -z $CAMLOGS ] && 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="$OSNAME"

if [ ! -f "$OSBIN" ]; then
	echo ""
	echo -e "\e[1;31m$CAMNAME wurde deaktiviert!"
	echo -e "Zum Re-aktivieren: \e[0;32mi cams\033[0m"
	echo ""
	exit 1
fi


# OSCam - Start
start_cam () {
	$OSBIN -b -c $CAMCONFIGS
	if [ $? -ne "0" ]; then
		echo "Fehler beim starten von $OSNAME!"
	else
		echo "$OSNAME : gestartet"
	fi
}

# OSCam - Stop
stop_cam () {
	pkill $OSVERSION
	sleep 2
	PID="$(pgrep -x $OSVERSION)"
	if [[ ! -n $PID ]] ; then
		echo "$OSNAME : beendet"
	else
		pkill -9 $OSVERSION		
		echo "$OSNAME : gekillt"
	fi
}

# Befehlsparameter
case "$1" in
	start)
		PID="$(pgrep -x $OSVERSION)"
		if [[ ! -z $PID ]] ; then
			echo "$OSNAME : ist bereits gestartet"
		else
			start_cam
			camd3 start
			if [[ $CRON == 1 ]]; then
				PID="$(pgrep -x cron)"
				if [[ ! -z $PID ]] ; then
					dummy="1"
				else
					echo "Cron  : gestartet"
					/etc/init.d/cron start > /dev/null
				fi		
			fi
		fi
	;;
	stop)
		PID="$(pgrep -x $OSVERSION)"
		if [[ ! -z $PID ]] ; then
			stop_cam
			camd3 stop
			if [[ $CRON == 1 ]]; then
				PID="$(pgrep -x cron)"
				if [[ ! -z $PID ]] ; then
					echo "Cron  : beendet"
					/etc/init.d/cron stop > /dev/null
				else
					echo "Cron  : ist bereits beendet"			
				fi		
			fi
		else
			echo "$OSNAME : ist bereits beendet"
		fi
	;;
	restart)
		echo "$OSNAME : restart"
		stop_cam
		camd3 stop
		sleep 3
		start_cam
		camd3 start
	;;
	conf)
		if test -f $OSCFG
		then
			clear
			echo -e "$OSNAME-Server: \033[1;37mKonfiguration\033[0m                                   $(date +"%d.%m.%Y %H:%M")"
			echo "==============================================================================="
			echo ""
			echo "Lade $OSCFG zum editieren.."
			sleep 2
			nano -R $OSCFG
			clear
		else
			echo -e "\033[1;31mKeine Konfiguration vorhanden, erstelle diese unter $OSCFG!\033[0m"
		fi
	;;
	server)
		if test -f $OSSERVER
		then
			clear
			echo -e "$OSNAME-Server: \033[1;37mKonfiguration\033[0m                                   $(date +"%d.%m.%Y %H:%M")"
			echo "==============================================================================="
			echo ""
			echo "Lade $OSSERVER zum editieren.."
			sleep 2
			nano -R $OSSERVER
			clear
		else
			echo -e "\033[1;31mKeine Konfiguration vorhanden, erstelle diese unter $OSSERVER!\033[0m"
		fi
	;;
	user)
		if test -f $OSUSER
		then
			clear
			echo -e "$OSNAME-Server: \033[1;37mKonfiguration\033[0m                                   $(date +"%d.%m.%Y %H:%M")"
			echo "==============================================================================="
			echo ""
			echo "Lade $OSUSER zum editieren.."
			sleep 1
			nano -R $OSUSER
			echo ""
			echo -en "\033[1;33mUserDB [N]euladen / []Beenden: \033[0m"
			read x
			case $x in
				[Nn])
					PID="$(pgrep -x $OSVERSION)"
					kill -1 $PID
					echo -en "\033[1;34mUserDB wurde neu geladen\033[0m"
				;;
				*)
				;;
			esac
		else
			echo -e "\033[1;31mKeine Konfiguration vorhanden, erstelle diese unter $OSUSER!\033[0m"
		fi
		echo ""
		echo "-------------------------------------------------------------------------------"
		echo ""
	;;
	services)
		$CAMBINS/script/oscam-services.sh
	;;
	srvid)
		$CAMBINS/script/oscam-srvid.sh
	;;
	help)
		clear
		less $CAMBINS/script/oscam-help.txt
	;;
	version)
		$CAMBINS/script/oscam-version.sh
	;;
	compile)
		$CAMBINS/script/oscam-compile.sh $2 $3
	;;
	log)
		clear
		echo -e "$OSNAME-Server: \033[1;37mLog\033[0m - Abbrechen mit [Strg]+[C]                  $(date +"%d.%m.%Y %H:%M")"
		echo "==============================================================================="
		echo ""
		if [ -f  $CAMLOGS/$OSNAME.log ] ; then
			tail -f $CAMLOGS/$OSNAME.log
		else
			echo " Keine Logdatei vorhanden." && echo ""
		fi
	;;
	*)
		clear
		echo -e "\033[1;37m$OSNAME-Server IPC $IPCVERSION                                         $(date +"%d.%m.%Y %H:%M")\033[0m"
		echo "==============================================================================="
		echo ""
		echo -e "Befehlsliste: \033[1;31moscam\033[0m"
		echo ""
		echo -e "\033[1;37m  Hilfe zu diesen Befehlen\033[0m                    \033[1;31mhelp\033[0m"
		echo -e "\033[1;37m  Version anzeigen/installieren\033[0m               \033[0;37mversion\033[0m"
		echo -e "\033[1;37m  Start, Stop, Restart\033[0m                        \033[0;37mstart | stop | restart\033[0m"
		echo -e "\033[1;37m  Konfiguration\033[0m                               \033[0;37mconf | server | user\033[0m"
		echo -e "\033[1;37m  Services, Srvid aktualisieren\033[0m               \033[0;37mservices | srvid\033[0m"
		echo -e "\033[1;37m  Log: Was laeuft\033[0m                             \033[0;37mlog\033[0m"
		echo -e "\033[1;37m  OScam kompilieren\033[0m                           \033[0;37mcompile\033[0m"
		echo ""
		echo "==============================================================================="
		echo ""
		exit 1
	;;
esac

exit 0

System (Debian)
IPC Version: 11.5
feissmaik
Entwickler Team
Beiträge: 2576
Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:

Re: cron: ist bereits beendet !

Beitrag von feissmaik »

Normalerweise läuft cron durch, es sei denn du hast irgendwas gemacht was dafür sorgt das es crasht, wie zum beispiel fehlerhafte Einstellungen über "i jobs", dann stünde aber im syslog auch eine Fehlermeldung bezüglich CRON.

Oder du hast vorher noch eine andere Cam beendet also zum Beispiel erst "c stop" und danach "o stop" dann ist es völlig normal das beim "o stop" steht, dass cron bereits beendet wurde weil es bereits bei "c stop" beendet wurde... Das kann man über "i cfg" einstellen und ist absicht da wenn man Wartungsarbeiten an der Cam durchführt, möchte man nicht das es nach einer Minute einfach wieder gestartet wird usw...

Also: Da du bereits am oscam script herrum gepfuscht hast ist es also völlig normal das diese Meldung kommt da bereits "camd3 stop" cron beendet und danach das oscam script das nochmals probiert aber dann eben merkt das cron garnich mehr läuft...
Und das bedeutet auch das du nicht die komplette Ausgabe vom "o stop" Befehl gepostet hast.....
Du musst nicht kämpfen um zu siegen
opeg77
IPC Neuling
Beiträge: 10
Registriert: Di 14. Feb 2012, 12:19
Kontaktdaten:

Re: cron: ist bereits beendet !

Beitrag von opeg77 »

ok also wenn ich das richtig verstanden hab, wird bei "o stop" camd3 beendet und damit dann auch "cron" dann erst prüft oscam ob "cron" gestartet ist und daher dann die Meldung.

So wie ich das sehe ist also hier der Knackpunkt

Code: Alles auswählen

	stop)
		PID="$(pgrep -x $OSVERSION)"
		if [[ ! -z $PID ]] ; then
			stop_cam
			camd3 stop
			if [[ $CRON == 1 ]]; then
				PID="$(pgrep -x cron)"
				if [[ ! -z $PID ]] ; then
					echo "Cron  : beendet"
					/etc/init.d/cron stop > /dev/null
				else
					echo "Cron  : ist bereits beendet"			
				fi		
			fi
		else
			echo "$OSNAME : ist bereits beendet"
		fi
camd3 stop wird vor der "cron" Prüfung ausgeführt und im "camd3" script ist dann der Befehl "Cron" zu beenden, folglich müsste "camd3 stop" nach der Prüfung eingetragen werden oder? Und im Camd3 script müsste dann das Beenden von "cron" rausgenommen werden

also so:

Code: Alles auswählen

	stop)
		PID="$(pgrep -x $OSVERSION)"
		if [[ ! -z $PID ]] ; then
			stop_cam
			if [[ $CRON == 1 ]]; then
				PID="$(pgrep -x cron)"
				if [[ ! -z $PID ]] ; then
					echo "Cron  : beendet"
					/etc/init.d/cron stop > /dev/null
                                        camd3 stop
				else
					echo "Cron  : ist bereits beendet"			
				fi		
			fi
		else
			echo "$OSNAME : ist bereits beendet"
		fi
feissmaik
Entwickler Team
Beiträge: 2576
Registriert: So 17. Apr 2011, 11:39
Been thanked: 1 time
Kontaktdaten:

Re: cron: ist bereits beendet !

Beitrag von feissmaik »

In jedem der Cam Scripts steht "wenn CRON=1 dann beende cron" drin... Das bedeutet also das sowohl "camd3 stop" als auch "oscam stop" den CRON dienst beenden wollen.
Das hat also nichts damit zu tun an welcher Position im Script du die Änderung vornimmst, entweder die Meldung kommt vom oscam Script oder vom camd3 Script..

Die Frage wäre allerdings wieso du das überhaupt machen möchtest?
Geht es dir dabei nur ums restarten? -> dann nutz stattdessen "i cr"

Wenn das aber nicht deinen Ansprüchen entspricht dann kommentier einfach die echo Zeile

Code: Alles auswählen

echo "Cron  : ist bereits beendet"
im camd3 Script aus und füg stattdessen ein " dummy=1 " ein (da sonst die if Schleife ein Fehler auswirft)
Du musst nicht kämpfen um zu siegen
opeg77
IPC Neuling
Beiträge: 10
Registriert: Di 14. Feb 2012, 12:19
Kontaktdaten:

Re: cron: ist bereits beendet !

Beitrag von opeg77 »

Also ich brauch den gemeinsamen start von oscam und camd3 da es sonst bei der Verbindung zu camd3 Probleme gibt. Camd3 hab ich als Key_Reader mit eingebunden und wenn Oscam nun gestoppt wird aber Camd3 noch läuft, gibt es beim wieder starten von oscam Verbindungsprobleme zu Camd3. Wird Camd3 allerdings auch bei oscam stop und start jeweils mit einbezogen, gibt es die Probleme nicht. Daher war das für mich die optimale Lösung bis jetzt. Dank deiner Hilfe, weis ich aber jetzt wie ich das noch besser Lösen kann in den Scripten

DANKE !
Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste