Skript für die Überprüfung, ob ein Programm noch ausgeführt?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Peter_19
Beiträge: 26
Registriert: 07.01.2004 15:15:50

Skript für die Überprüfung, ob ein Programm noch ausgeführt?

Beitrag von Peter_19 » 01.01.2005 23:41:15

Hallo alle,
ich versuche schon den ganzen Zeit diesen Problem zu lösen,:
Es geht darum, ob ein Skript (er läuft sekündlich) ausgeführt ist, wenn nicht, dann soll der Skript gestartet werden.

Code: Alles auswählen

#! /bin/bash
# wachundskript by m.klein
export test=$(pidof /usr/bin/phpx);
if [ -z $(printenv test) ]; then exec /var/www/zion/game/wach/sektim; fi;
(phpx kommt daher, weil pidof sonst mehreren Ergebnisse zurückgibt, denn es laufen noch anderen Skripte minütlich über php5.)
Allerdings hat dieser Code ein Fehler:
/var/www/zion/game/wach/wachhund.sh: [: 32571: binary operator expected

- 1. Frage: Was bedeutet dieser Fehler genau? Wie kann man ihn beheben?

- 2. Frage: Hier ist ein Version, welchen mit nur php5 arbeiten soll (also alle Update-Skripte laufen über php5)

Code: Alles auswählen

#! /bin/bash
# wachundskript by m.klein
export test=$(ps aux | grep sektim);
if [ -z $(printenv test) ]; then exec /var/www/zion/game/wach/sektim; fi;
Hier geht es (export test ...) nicht, da Bash mit der Fehler quittiert: Too Many Arguments (im Console geht es aber!).

Könnt Ihr bitte mir helfen (2.Frage ist wichtiger als 1.Frage)?
MFG
Peter

ulf
Beiträge: 39
Registriert: 22.09.2002 13:00:52

Re: Skript für die Überprüfung, ob ein Programm noch ausgeführt?

Beitrag von ulf » 02.01.2005 14:02:48

Peter_19 hat geschrieben:

Code: Alles auswählen

#! /bin/bash
# wachundskript by m.klein
export test=$(pidof /usr/bin/phpx);
if [ -z $(printenv test) ]; then exec /var/www/zion/game/wach/sektim; fi;
...

Allerdings hat dieser Code ein Fehler:
/var/www/zion/game/wach/wachhund.sh: [: 32571: binary operator expected

- 1. Frage: Was bedeutet dieser Fehler genau? Wie kann man ihn beheben?
Zu viele oder zu wenig Argumente, helfen müßte

Code: Alles auswählen

if [ -z "$(printenv test)" ]

Code: Alles auswählen

#! /bin/bash
# wachundskript by m.klein
export test=$(ps aux | grep sektim);
if [ -z $(printenv test) ]; then exec /var/www/zion/game/wach/sektim; fi;
Hier geht es (export test ...) nicht, da Bash mit der Fehler quittiert: Too Many Arguments (im Console geht es aber!).
Wie oben, versuch' mal

Code: Alles auswählen

export test="$(ps aux | grep sektim)"
...
if [ -z "$(printenv test)" ]
Gruß,
Ulf

Antworten