programmlauf überprüfen

Telman12

Neuer User
Mitglied seit
5 Jul 2010
Beiträge
178
Punkte für Reaktionen
0
Punkte
16
hallo
also ich hab ein wenig geschaut aber nix brauchbares gefunden oder die flaschen begriffe gesucht. ich möchte ein skript oder befehl der folgemdes macht
1. überprüft ob ein bestimmtes prg läuft.
2. dieses dann startet
das ganze soll per cronjob alle 1-2 h wiederhollt werden. so den wenn ihr infos braucht einfach sagen.
Danke
 
danke wenn mein englisch ausreicht ist das das was ich suche. gibt es im trunk das prg.wo währe es dann zu finden sy keine bau umgebung am start. mus ich den patsch anwenden und wie macht man das.
 
Um ein Image aus dem Trunk zu erzeugen brauchst du sowieso eine Build-Umgebung. Von daher ist das äußerst wenig gute Ausrede. Starte deine Build-Umgebung und schau im menuconfig, ob du es findest oder nicht. Oder aber lies simpel das Changelog, in dem sind die Änderungen vermerkt.

Am Rande ist deine Aufgabenstellung kein Freetz-Spezifikum, diese Problemstellung gibt es an diversen Stellen in der Linuxwelt, ohne dass es Freetz bedarf dafür, bzw. dessen Existenz.
Ein paar Tipps: Das Linux-Kommando "ps" gibt dir mit entsprechenden Optionen eine Prozessliste, bei der laufende Programme angezeigt werden. Ein minimales Shell-Howto gibt es sogar auf der Freetz-Seite, aber auch an Millionen anderer Stellen im Netz.
 
Um ein einzelnes Programm zu überprüfen, kann man auch das Programm pidof benutzen.
Code:
pidof prozessname
gibt die Prozess-ID zurück, wenn der Prozess läuft, sonst 0. Mit einem simplen dreizeiler Shellscript kannst du dein Vorhaben realisieren.
 
von mir aus nicht den
1. erledigt das auch pidof denke ich
2. mus ich keine bau-umgebung haben und neues image bauen denn das läuft so sabil
mus mich nur noch einlesen zum skipten wie, was, usw, usw.es sei den ihr habt so einen dreizeiler auf lager.
mfg
 
hallo
anscheinet ist das umfangreicher als gedacht.
so könnte ihr bitte mal meinen bauplann überprüfen
1. pidof id überprüfen mit option das nur eine zahl ausgeben wird.
2. diese zahl überprüfen op gröser 0
3. wenn ja alles o.k. wenn nein prg starten und neuer durchlauf
problem macht derzeit das speichern der zahl und die if then anweisung hab ihr da eingehendes materrial
 
Code:
#!/bin/sh
prog="testprog"
[ -z $(pidof $prog) ] && $prog
Gruß
Oliver
 
danke aber das skript läuft nicht. zudem wollte ich eigendlich eine qwlle für das skipten so lern ich ja nix. trotzdem Danke
 
Eine ganz gute Einführung zur Shellprogrammierung findest du hier
 
als irgendwas läut hier nicht rund
Code:
root@fritz:/var/media/ftp/uStor01# ./n
'bin/sh: can't open '
root@fritz:/var/media/ftp/uStor01# cat n
#!/bin/sh
$ echo ${tmp:-`date`}
root@fritz:/var/media/ftp/uStor01#
das ist ausn wiki zum testen . was stimmt hier nicht
Code:
-rwxrwxrwx    1 ftpuser  users           37 Mar 31 11:30 n
die gleiche meldung gabs bei dem andrem code auch
 
Das sieht so schon nicht gut aus, und ich sehe auch nicht den Zusammenhang zu der ursprünglichen Frage, aber zeige mal, was angezeigt wird bei
Code:
hexdump -C n
 
ich sehe auch nicht den Zusammenhang zu der ursprünglichen Frage
der zusammenhang besteht darin das ich mir das selber coden wollte zeit zum lernen hab ich ja. dann hab ich gestern den code getest immer ein wenig faul schadet nicht. geht nicht no poblem aber das ein 1 zeiler ausn wiki nicht geht ist schon ein prob
bzw. als klar wurde wie das zu lösen ist dacht ich mir das kannst auch irgendwie. und auserdem bin ich ziemlich sprunghaft.

Code:
root@fritz:/var/media/ftp/uStor01# hexdump -C n
00000000  23 21 2f 62 69 6e 2f 73  68 20 0d 0a 24 20 65 63  |#!/bin/sh ..$ ec|
00000010  68 6f 20 24 7b 74 6d 70  3a 2d 60 64 61 74 65 60  |ho ${tmp:-`date`|
00000020  7d 20 20 0d 0a                                    |}  ..|
00000025
 
Zuletzt bearbeitet:
ja das wars aber ich habe nur mit notepad++ gearbeitet dachte der ist linux konform
 
Aber nicht, wenn du eine Textdatei unter Windows erstellst. Woher soll der denn wissen, dass die für Linux ist, wenn du es ihm nicht sagst...

Gruß
Oliver
 
Und wenn schon, dann bitte so:
Code:
#!/bin/sh
prog="testprog"
[ -z [B][COLOR="red"]"[/COLOR][/B]$(pidof $prog)[B][COLOR="red"]"[/COLOR][/B] ] && $prog
Ich kenne es so, dass wenn man in sh eine leere Variable mit -n oder mit -z testet, dann MUSS man "" rumherum verwenden. Ist aber meine persönliche Erfahrung mit shell-Programmierung auf der Box. Shell-Skripting hatte ich mir auch nur angelernt. Deswegen bitte daraus keine allgemeine Gültigkeit ziehen.

Edit: Funktioniert denn pidof wirklich immer? Was ist mit Zombies und sonstigen "Aufhänger". Gibt es andere Möglichkeiten zu prüfen, ob ein Programm wirklich läuft?
Wenn ich selbst das Programm schreiben würde, dann würde ich in bestimmten Zeitintervallen irgendeine Datei in /tmp verändern. Von mir aus mit timestamp oder ähnlichem. Hat sich dein Programm "aufgehängt", so wird diese Stelle unter /tmp nicht mehr aktuell. Daraus kann man dann ziemlich sicher erkennen, dass das Program "hängt" und es sogar vorher killen, bevor man es neu startet. Solche Möglichkeiten bietet pidof sicherlich nicht.

Um was für ein dubiöses Programm handelt es denn, wenn ich fragen darf? Ich ahne und rieche schon, wohin der Wind weht...

MfG
 
Zuletzt bearbeitet:
hat etwas länger gedauert muste win neu aufsetzen. es handelt sich um nzbget . ich komme sowieso nicht weiter denn, ich kann mit dem zeichen -z nix anfamgen. stet nix im wiki oder ich fins nicht.
p.s, das prg hat sich noch nie aufgehägt oder ich habs nicht gemerkt

ich bitte um eine zeichen für zeichen erkärung für dumies
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.