sutterp
19-04-2001, 10:36
Guten Tag,
Auf meinem System soll eine bash Script <myscript> 'on demand' ablaufen. Die Script behandelt verschiedenen Dateien und fuehrt privilegierte Kommandos aus, sie muss deshalb unter root ablaufen.
Dies erreiche ich mit einer zweiten Script, <startscript>. startscript besteht aus einer Zeile, naemlich
su - root -c "myscript >~/myscript.log 2>&1 &"
Wenn ich nun startscript aufrufe, werde ich fuer das Superuser Passwort gefragt, und startscript started myscript. myscript lauft nun direkt unter init, das heisst ich kann das Terminal Window schliessen oder mich sogar vom system ausloggen und myscript laeuft trotzdem weiter. Dies ist genau was ich erreichen wollte.
Faul wie ich bin, moechte ich nicht jedesmal ein Terminal Window eroeffnen und startscript eintippen muessen. Deswegen habe ich auf dem Desktop ein .kdelink installiert, so dass ich nur mit der Maus draufclicken kann. Dies funktioniert leider nicht.
Was passiert ist dass ein Terminal Window eroeffnet wird und mich fuer das Superuser Passwort fragt. Wenn dies eingegeben ist, started startscript myscript korrekt, myscript beginnt auch zu laufen, aber jetzt wird das Terminal Window von KDE/KFM geschlossen und erinnert sich irgendwie, dass da auch myscript unter init laeft, killed myscript und schliesst das Terminal Window.
Ich hab dann ein sleep 180 hinter das su Kommando eingefuegt, um mit ktop die Prozesshierarchie festzustellen.
Ist der Prozess mit .kdelink gestarted worden, so gilt
Init - Kfm - Konsole - sh - sleep fuer startscript,
Init - myscript - Kommando fuer myscript
Ist der Prozess jedoch von einem Terminal Window gestarted worden, so gilt
Init - Kfm - Konsole - bash - bash - sleep fuer startscript,
Init - myscript - Kommando fuer myscript
Frage: Was muss ich aendern um das gewuenschte resultat zu erreichen?
Vielen Dank fuer die Hilfe
Auf meinem System soll eine bash Script <myscript> 'on demand' ablaufen. Die Script behandelt verschiedenen Dateien und fuehrt privilegierte Kommandos aus, sie muss deshalb unter root ablaufen.
Dies erreiche ich mit einer zweiten Script, <startscript>. startscript besteht aus einer Zeile, naemlich
su - root -c "myscript >~/myscript.log 2>&1 &"
Wenn ich nun startscript aufrufe, werde ich fuer das Superuser Passwort gefragt, und startscript started myscript. myscript lauft nun direkt unter init, das heisst ich kann das Terminal Window schliessen oder mich sogar vom system ausloggen und myscript laeuft trotzdem weiter. Dies ist genau was ich erreichen wollte.
Faul wie ich bin, moechte ich nicht jedesmal ein Terminal Window eroeffnen und startscript eintippen muessen. Deswegen habe ich auf dem Desktop ein .kdelink installiert, so dass ich nur mit der Maus draufclicken kann. Dies funktioniert leider nicht.
Was passiert ist dass ein Terminal Window eroeffnet wird und mich fuer das Superuser Passwort fragt. Wenn dies eingegeben ist, started startscript myscript korrekt, myscript beginnt auch zu laufen, aber jetzt wird das Terminal Window von KDE/KFM geschlossen und erinnert sich irgendwie, dass da auch myscript unter init laeft, killed myscript und schliesst das Terminal Window.
Ich hab dann ein sleep 180 hinter das su Kommando eingefuegt, um mit ktop die Prozesshierarchie festzustellen.
Ist der Prozess mit .kdelink gestarted worden, so gilt
Init - Kfm - Konsole - sh - sleep fuer startscript,
Init - myscript - Kommando fuer myscript
Ist der Prozess jedoch von einem Terminal Window gestarted worden, so gilt
Init - Kfm - Konsole - bash - bash - sleep fuer startscript,
Init - myscript - Kommando fuer myscript
Frage: Was muss ich aendern um das gewuenschte resultat zu erreichen?
Vielen Dank fuer die Hilfe