Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

suche shell-befehl um zu testen ob ein prozess läuft (suse)

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
MaN
Newbie
Newbie
Beiträge: 9
Registriert: 4. Aug 2005, 02:17

suche shell-befehl um zu testen ob ein prozess läuft (suse)

Beitrag von MaN »

hi,

da ich ein Problem mit dem starten von einem programm hab (VDR),
möchte ich jetzt ein script schreiben mit dem ich überprüfen kann ob der prozess lauft, und wenn nicht ihn zu starten.

gibt es ein Befehl mit dem ich überprüfen kann ob der Prozess lauft und true oder false ausgibt?

Gruß

MaN
Benutzeravatar
Zinnwurm
Hacker
Hacker
Beiträge: 261
Registriert: 1. Sep 2004, 13:32
Wohnort: echo ~ Deutschland/Augsburg
Kontaktdaten:

Beitrag von Zinnwurm »

Code: Alles auswählen

TMP=`ps -e | grep $PROZESS`; if [ -n "$TMP" ]; then echo "ja"; else echo "nein"; fi
Die Variable $PROZESS eben durch deinen Prozessnamen ersetzen. die if ist natürlich beliebig anpassbar ^^
Ist vielleicht auch nicht die schlaueste Lösung, funzt aber bei mir. XD

EDIT: Und weil ich dumm bin, fiel mir erst jetzt auf, dass man sich die Variable sogar schenken kann

Code: Alles auswählen

if [ -n "`ps -e | grep $PROZESS`" ]; then echo "ja"; else echo "nein"; fi
(Man achte daruaf, dass in beiden Fällen um den Ausdruck ps -e | grep $PROZESS Backticks (`) stehen, keine normalen Anführungsstriche.)
Mein Web-Framework: EatingEngine
MaN
Newbie
Newbie
Beiträge: 9
Registriert: 4. Aug 2005, 02:17

Beitrag von MaN »

ich hab jetzt einfach anstatt der variabel $PROZESS vdr eingegeben.

habe mit top geprüft ob der prozess läuft. (er lief nicht) aber trotzdem wurde ausgegeben das der prozess läuft.

was mach ich falsch?



edit: ich hab jetzt das ganze mal mit einem anderen Prozess versucht (ein kleines script) und mit dem giengs...

aber mit vdr giengs immer noch nicht.

edit2: wenn wir schon dabei sind, wie lautet eigenltich die Abfrage ob ein Verzeichnis oder eine Datei vorhanden ist?
flo41
Hacker
Hacker
Beiträge: 290
Registriert: 9. Feb 2005, 11:47

Beitrag von flo41 »

heisst der prozess den wirklich vdr??
MaN
Newbie
Newbie
Beiträge: 9
Registriert: 4. Aug 2005, 02:17

Beitrag von MaN »

wenn ich top eingebe sehe ich mehrere prozesse mit dem namen vdr. also ich denke mal es heist schon so... die datei zum starten heist auch vdr.
Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

Beitrag von regexer »

Zinnwurm hat geschrieben:EDIT: Und weil ich dumm bin, fiel mir erst jetzt auf, dass man sich die Variable sogar schenken kann

Code: Alles auswählen

if [ -n "`ps -e | grep $PROZESS`" ]; then echo "ja"; else echo "nein"; fi
Man kann sich sogar die test-klammern und die Backticks schenken, weil if auch alleine zwischen Returncode 0 und 1 unterscheiden kann...

Code: Alles auswählen

if ps -e | grep $PROZESS; then echo "ja"; else echo "nein"; fi
Allerdings sollte man sicherstellen, dass $PROZESS wenigstens mit irgendetwas gefuellt ist, sonst gibt's einen Fehler wegen fehlender Parameter ...
Antworten