"check if running script"

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

manufact

Benutzer
Registriert
13. Jan. 2017
Beiträge
23
Reaktionspunkte
0
Punkte
1
hat jemand einen vorschlag, wie man am besten ein script einrichtet, welches nach bestimmter zeit überprüft, ob ein porgramm (prozess) noch rennt und falls nötig dann das programm neustartet?


ich habs mal probiert:



1. checkoscam.sh in /volume2/oscam/

#!/bin/sh
ps auxw | grep oscam | grep -v grep > /dev/null

if [ $? != 0 ]
then
cd /volume2/oscam
./oscam - c /volume2/oscam
fi

2. chmod 755 für checkoscam.sh

3. weitere zeile in corontab:

* * * * * root /volume2/oscam/checkoscam.sh




funzt leider nicht
 
Zuletzt bearbeitet:
Leite die Ausgabe des Skripts in eine Datei um und schau, was da kommt.
 
Im Code ist ein Leerzeichen zu viel, "./oscam - c" statt "./oscam -c". Außerdem tippe ich, dass man $PATH mitgeben sollte. Drittens können nicht alle Shells (busybox ash in DSM 5.2 zum Beispiel) "ps auxw", ich würde "ps w" nehmen oder explizit eine bestimmte Shell angeben.
 
#!/bin/sh

ps w | grep oscam | grep -v grep > /dev/null

if [ $? != 0 ]
then
/volume2/oscam/oscam -b -c /volume2/oscam
fi


habs korrigiert.... ausser $PATH...weiss nicht wie man das genau angeben muss und weshalb.


nun....das Script startet oscam wenn ich es ausführe.

Jedoch wenn ich das script nochmals ausführe, startet es oscam nochmals und nochmals.....

d.h. für mich das

hier irgendwo der fehler liegt:

ps w | grep oscam | grep -v grep > /dev/null

if [ $? != 0 ]
 
evtl. so

if [ $? -ne 0 ]

auch nicht....
oscam wird immer wieder gestartet beim script ausführen, obwohl es schon läuft


ich hab no ein 2. script

#!/bin/sh

# Oscam-Watchdog-Skript das alle 20 Sekunden überprüft, ob Oscam läuft und gegebenenfalls neu startet.
# Dabei wird protokolliert, wie oft es abgefragt, bzw. Oscam neu gestartet werden musste.
#

while sleep 20
do
if ps w | grep -v grep | grep -w -c "/volume2/oscam/oscam"
then
echo""
echo `date` "Oscam läuft" >> /volume2/oscam/log/check_oscam.log
else
killall oscam
sleep 1
echo `date` "Neustart Oscam..." >> /volume2/oscam/log/oscam-crash.log
/volume2/oscam/oscam -b -c /volume2/oscam &
fi
done

dieses restartet oscam jedoch alles x (hier 20) sekunden, obwohl es bereits läuft
 
Zuletzt bearbeitet:
Rich (BBCode):
ps w | grep oscam | grep -v grep > /dev/null

gebe mal which ps im Terminal ein, dann sollte die Ausgabe /bin/ps kommen.

Das setzt du dann in deinem Script ein.

Rich (BBCode):
/bin/ps w | grep oscam | grep -v grep > /dev/null

/bin/ps auxw sollte unter DMS 6 funktionieren.
 
Zuletzt bearbeitet:
Rich (BBCode):
ps w | grep oscam | grep -v grep > /dev/null

gebe mal which ps im Terminal ein, dann sollte die Ausgabe /bin/ps kommen.

Das setzt du dann in deinem Script ein.

Rich (BBCode):
/bin/ps w | grep oscam | grep -v grep > /dev/null

/bin/ps auxw sollte unter DMS 6 funktionieren.


geht auch nicht....dasselbe. oscam startet obwohl schon läuft
 
Schon mal auf der Konsole den Befehl eingegeben ohne Umleitung?
Dann kannst du ja sehen ob du ihn findest
 
so gehts

in /volume2/oscam/ check.sh:

if /bin/ps auxw | grep -v grep | grep -w -c "/volume2/oscam/oscam"
then
echo""
else
killall oscam
sleep 2
echo `date` "Neustart Oscam..." >> /volume2/oscam/log/oscam-crash.log
/volume2/oscam/oscam -b -c /volume2/oscam &
fi


in crontab dann noch

* * * * * root /volume2/oscam/check.sh




----------------------------------------------------------------------------------------------

das hauptproblem war wohl die falsche if bedingung
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat