watch-daemon laeßt sich nicht in .profile starten
Ein Skript startet einen watch-daemon. Das Skipt läßt sich an der Shell sowohl mit & als auch ohne & starten. Es läßt sich als rc-Startskript starten aber NICHT in .profile des Benutzers. Warum? Das Skript: #!/bin/sh # # Achtung: cmd erstreckt sich über zwei Zeilen cmd='e=`ls /home/L/instruct/ -1t | grep az_ | tail -n 1`; [ $e ] && rm /home/L/instruct/az_* && /home/gerlach/tt &' watch -n 1 -t $cmd & Wie bringe ich den watch-daemn in .profile gestartet? Das Skipt startet nicht, unabhängig davon ob Dateien az_* existieren oder nicht. BTW: tail -n 1 ist notwendig, weil bei mehreren az_* es sonst den "unary operator expected"-Fehler gibt. danke schon mal Ekkard
Am Mittwoch, 14. Juli 2004 01:40 schrieb Ekkard Gerlach:
watch -n 1 -t $cmd &
Schon mal watch -n1 -t sh -c $cmd probiert? (mit subshell) -- Dipl.-Ing. Jens Benecke http://www.hitchhikers.de - Europas kostenlose Mitfahrzentrale seit 1998 http://www.rb-hosting.de - Webhosting mit Extras - PHP ab €9 - SSH ab €19 http://www.spamfreemail.de - 100% saubere Postfächer, garantiert!
* Jens Benecke schrieb:
Am Mittwoch, 14. Juli 2004 01:40 schrieb Ekkard Gerlach:
watch -n 1 -t $cmd &
Schon mal
watch -n1 -t sh -c $cmd
probiert? (mit subshell)
ja, hat nicht geholfen. Habe mal eine andere Variante von -c im Aufruf von /home/gerlach/tt probiert und ohne & am Ende: #!/bin/sh # # Achtung: cmd erstreckt sich über zwei Zeilen cmd='e=`ls /home/L/instruct/ -1t | grep az_ | tail -n 1`; [ $e ] && rm /home/L/instruct/az_* && sh -c /home/gerlach/tt ' watch -n 1 -t $cmd & So funktioniert es!! der watch-daemon wird gestartet. Leider wird aber das /home/gerlach/tt nicht richtig ausgeführt: /home/gerlach/tt: ^^^^^^^^^^^^^^^^^ export DISPLAY=:0.0 /usr/bin/opera -remote openURL\(http://localhost/scan/b.php?nr=555\) echo $$ > /tmp/log sleep 3 /usr/bin/opera -remote openURL\(http://localhost/scan/b.php?nr=666\) In dem /tmp/log steht die Prozessnummer. Also wird das Skript durchlaufen. Allerdings bekommt der bereits gestartete oder frisch gestartete Opera nicht den richtigen "kick" die URL http://localhost/scan/b.php?nr=555 und danach http://localhost/scan/b.php?nr=666 anzuzeigen. Das Skript /home/gerlach/tt an einem xterm ausgeführt funktioniert einwandfrei. Was gefällt dem Skript noch nicht? Leite ich übrigens die Fehlermeldung vom Aufruf von opera auf /tmp/log um, so erhalte ich "opera: Activated running instance of Opera", war sich auch erhalte, wenn ich /home/gerlach/tt in einem xterm ausführe. Also normal. Nur Opera erhält nicht das http://localhost/scan/b.php?nr=666 . Was fehlt noch? Ekkard
* Ekkard Gerlach schrieb:
* Jens Benecke schrieb:
Am Mittwoch, 14. Juli 2004 01:40 schrieb Ekkard Gerlach:
watch -n 1 -t $cmd &
Schon mal
watch -n1 -t sh -c $cmd
probiert? (mit subshell)
ja, hat nicht geholfen. Habe mal eine andere Variante von -c im Aufruf von /home/gerlach/tt probiert und ohne & am Ende:
#!/bin/sh # # Achtung: cmd erstreckt sich über zwei Zeilen cmd='e=`ls /home/L/instruct/ -1t | grep az_ | tail -n 1`; [ $e ] && rm /home/L/instruct/az_* && sh -c /home/gerlach/tt '
watch -n 1 -t $cmd &
So funktioniert es!! der watch-daemon wird gestartet. Leider wird aber das /home/gerlach/tt nicht richtig ausgeführt:
/home/gerlach/tt: ^^^^^^^^^^^^^^^^^ export DISPLAY=:0.0 /usr/bin/opera -remote openURL\(http://localhost/scan/b.php?nr=555\) echo $$ > /tmp/log sleep 3 /usr/bin/opera -remote openURL\(http://localhost/scan/b.php?nr=666\)
In dem /tmp/log steht die Prozessnummer. Also wird das Skript durchlaufen. Allerdings bekommt der bereits gestartete oder frisch gestartete Opera nicht den richtigen "kick" die URL http://localhost/scan/b.php?nr=555 und danach http://localhost/scan/b.php?nr=666 anzuzeigen.
Nachtrag: unter ps axw werden mehrfach gestartete Opera im Modus "S" angezeigt. Owner ist schon der richtig, "gerlach", aber irgendwie "finden" die Befehle /usr/bin/opera -remote openURL\(http://localhost...... nicht den schon gestarteten Opera. Warum? Ich erhalten im /tmp/log dann DOCH kein "opera: Activated running instance of Opera", die Opera's scheinen am Begrüßungsfenster zu hängen. Also werden die Operas NEU gestartet und der bestehende wird nicht gefunden. Warum nicht? Vom xterm aus gestartet wird der Opera gefunden und dort danndie URL angezeigt...
Das Skript /home/gerlach/tt an einem xterm ausgeführt funktioniert einwandfrei. Was gefällt dem Skript noch nicht? Leite ich übrigens die Fehlermeldung vom Aufruf von opera auf /tmp/log um, so erhalte ich "opera: Activated running instance of Opera", war sich auch erhalte, wenn ich /home/gerlach/tt in einem xterm ausführe. Also normal. Nur Opera erhält nicht das http://localhost/scan/b.php?nr=666 . Was fehlt noch?
Ekkard
Am Mittwoch, 14. Juli 2004 13:29 schrieb Ekkard Gerlach:
export DISPLAY=:0.0 /usr/bin/opera -remote openURL\(http://localhost/scan/b.php?nr=555\) echo $$ > /tmp/log sleep 3 /usr/bin/opera -remote openURL\(http://localhost/scan/b.php?nr=666\)
Ich erhalten im /tmp/log dann DOCH kein "opera: Activated running instance of Opera", die Opera's scheinen am Begrüßungsfenster zu hängen. Also werden die Operas NEU gestartet und der bestehende wird nicht gefunden. Warum nicht? Vom xterm aus gestartet wird der Opera gefunden und dort danndie URL angezeigt...
Stimmt DISPLAY mit dem DISPLAY überein, was du im xtern erhälst? Hast du schon mal "xterm -e opera -remote ..." versucht? Woran merkt opera im xterm, ob es schon läuft? (Fragt es vielleicht eine Fensterliste ab)? Kannst du so _andere_ X-Programme starten (über cron) oder mosern die auch über z.B. fehlende Displayvariablen oder dass sie den X11-Server nicht finden? -- Dipl.-Ing. Jens Benecke http://www.hitchhikers.de - Europas kostenlose Mitfahrzentrale seit 1998 http://www.rb-hosting.de - Webhosting mit Extras - PHP ab €9 - SSH ab €19 http://www.spamfreemail.de - 100% saubere Postfächer, garantiert!
* Jens Benecke schrieb:
Am Mittwoch, 14. Juli 2004 13:29 schrieb Ekkard Gerlach:
export DISPLAY=:0.0 /usr/bin/opera -remote openURL\(http://localhost/scan/b.php?nr=555\) echo $$ > /tmp/log sleep 3 /usr/bin/opera -remote openURL\(http://localhost/scan/b.php?nr=666\)
Ich erhalten im /tmp/log dann DOCH kein "opera: Activated running instance of Opera", die Opera's scheinen am Begrüßungsfenster zu hängen. Also werden die Operas NEU gestartet und der bestehende wird nicht gefunden. Warum nicht? Vom xterm aus gestartet wird der Opera gefunden und dort danndie URL angezeigt...
Stimmt DISPLAY mit dem DISPLAY überein, was du im xtern erhälst? Hast du schon mal "xterm -e opera -remote ..." versucht?
Das mit sh -c und xterm -e habe ich schon versucht, nur direkt vor dem opera-Aufruf nicht. Leider hat das auch nicht geholfen. Mit dem xterm -e opera ... ist das obige Skript wiederum vom xterm aus startbar, es blitzt dann sehr lustig für jeden Start ein xterm auf. Vom cron aus "versumpft" der opera-Aufruf aber wie bisher und ruht im Status "S" (sleeping) in ps axw. danke auf jeden Fall, sonst noch Ideen? Ekkard
participants (3)
-
Ekkard Gerlach
-
Jens Benecke
-
Jens Benecke