Quantcast
Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Problem mit OScam Start-Script /usr/local/bin/oscamchk

D1no

Ist gelegentlich hier
Registriert
18. Februar 2013
Beiträge
33
Reaktionspunkte
4
Punkte
8
Hallo Zusammen

ich würde gerne ein oscamchk Script haben das prüft, ob oscam läuft oder nicht.
Falls nicht via crontab dann entsprechend neustarten.

Im Skript habe ich folgendes stehen:
Problem scheint das wenn oscam bei mir startet ich 2 Prozess Id´s zurück kommt:
ps -e | grep oscam
7747 ? 00:00:00 oscam
7748 ? 00:00:00 oscam

Bash:
 sudo systemctl status oscam
● oscam.service - OScam
   Loaded: loaded (/etc/systemd/system/oscam.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-04-28 11:10:17 CEST; 5min ago
  Process: 7736 ExecStop=/usr/bin/rm /var/run/oscam.pid (code=exited, status=203/EXEC)
  Process: 7746 ExecStart=/usr/local/bin/oscam -b -B /var/run/oscam.pid (code=exited, status=0/SUCCESS)
Main PID: 7748 (oscam)
    Tasks: 27 (limit: 4915)
   CGroup: /system.slice/oscam.service
           ├─7747 /usr/local/bin/oscam -b -B /var/run/oscam.pid
           └─7748 /usr/local/bin/oscam -b -B /var/run/oscam.pid

Bash:
#!/bin/bash

if [ ! $(ps -e | grep  "oscam") ]; then
    systemctl start oscam
fi

Beim ausführen des Scripte bekomme ich dann zuück:
/etc/systemd/system# /usr/local/bin/oscamchk
/usr/local/bin/oscamchk: line 3: [: too many arguments

Es liegt daran das zwei Prozess Id´s gefunden werden.
Hat jemand eine Ahnung wie ich das beheben kann das "Ps" nur einmal oscam findet?
 
du musst für deinen Watchdog auch nur überprüfen, ob OSCam läuft. Anzahl der Prozesse spielt dabei keine Rolle ;)

Mache doch z.B. einen "Count" der Prozesse daraus; wenn "Count" > 0 = läuft sie...
 
bei einem "ps ax | grep oscam" wird auch immer der eigene "grep"-Prozess gefunden, sagt also nicht unbedingt etwas aus. Schau mal, ob dir "pgrep" zur Verfügung steht, falls nicht, schaue dir unten die Lösung per "grep" an.

Bsp.:
Code:
root@rec-gbue4k-buero:~# ps ax | grep oscam
 2078 ?        Ss     0:00 /usr/bin/oscam -b -r 2 -u -c /usr/keys
 2079 ?        Sl     0:02 /usr/bin/oscam -b -r 2 -u -c /usr/keys
 9608 pts/0    S+     0:00 grep oscam
root@rec-gbue4k-buero:~# pgrep -c oscam
2

Wenn du es halt nur per "grep" checkst, musst den eigens gestarteten "grep"-Prozess ignorieren:
Code:
root@rec-gbue4k-buero:~# ps ax | grep -v grep | grep oscam
 2078 ?        Ss     0:00 /usr/bin/oscam -b -r 2 -u -c /usr/keys
 2079 ?        Sl     0:03 /usr/bin/oscam -b -r 2 -u -c /usr/keys
 
Ich hab es jetzt folgendermaßen gelöst und das ganze in die cron gepackt.

Code:
PIDFILE=/var/run/oscam.pid
if (kill -0 `cat $PIDFILE`)
   then
      echo "it's alive!";> /dev/null
   else
      rm $PIDFILE
      systemctl start oscam > /dev/null
      echo "OSCAM restarted at `date`" >> /var/log/oscam-crash.log
fi
 
Hi,
was hälst du von dieser Variante?
 
Zurück
Oben