Hallo, ich brauche nochmal eure Hilfe für ein Batchprogramm.
Das Programm startet u.a. einen Browser, nutzt das read-Kommando und soll unter einer speziellen User-Kennung laufen. Das funktioniert auch, wenn ich es auf einer Konsole von diesem User aus starte. Wenn ich es aber über einen KDE-Desktop-Programmsymbol starte läuft das read-Kommando nicht richtig (der Browser startet korrekt, seit ich "DISPLAY=:0.0" vor den Browser-Aufruf eingefügt habe). Außerdem funktioniert die Kontrolleiste nicht, solange der Batch läuft.
wie kann ich den Fehler beheben oder wo finde ich besser Doku zu diesem "KDE-Desktop-Programmsymbol" ?
Gruß
heriL
Linux 14.982 Themen, 106.376 Beiträge
Ich bin auch nicht der große BASH Experte ;-).
Ich habe mal versucht das Problem nachzuvollziehen. Gib mal in einer Konsole diese Befehle ein, um zu testen was bei den einzelnen Scriptbefehlen passiert:
~$ su ; read test ; echo $test
Password:
# exit
exit
erfolgreich
erfolgreich
Du startest mit su eine neue Shell und verläßt damit die Programmumgebung.
Wenn man ein Shellscript startet, dann startet die Shell eine neue Shell (wegen dem Pseudokommentar #!/bin/bash) in der das Shellscript dann läuft. Dabei wird auch die gesamte Umgebung (Umgebungsvariablen) vererbt.
Das ist bei Unix Standard. Ein Prozess startet einen Kindprozess mit Hilfe des Systemaufrufs fork() und dann wird durch den Systemaufruf execl() der Kindprozess durch den eigentlichen Prozess ersetzt. Dabei werden auch alle Rechte vererbt.
Besser kann ich es nicht erlären.
PS: Wozu brauchst du su ?
PPS: Kauf dir mal ein Lehrbuch für die Shellprogrammierung:
http://www.amazon.de/s/ref=nb_ss_w?__mk_de_DE=%C5M%C5Z%D5%D1&url=search-alias%3Daps&field-keywords=Shellprogrammierung+Krienke&x=0&y=0
