Archiv verlassen und diese Seite im Standarddesign anzeigen : Root Programme in Scripten starten
hi ich will mir ein einfaches startscript schreiben. darin sollen 2 root-programme gestartet werden.
hab mir das ungefähr so gedacht:
#!/bin/bash
su
cd /pfad/sonstwohin
./prog1
cd /pfad/woandershin
./prog2
leider läuft das script nach der passworteingabe nicht mehr weiter.
Hallo!
Füge mal hinter su ein "-c" an, dann sollte es gehen.
ne tut nich:
su: Diese Option benötigt ein Argument -- »c«
Ja, dahinter sollte auch gleich der Befehl erscheinen, in etwa so:
su -c cd /pfad/sonstwohin && ./prog1 && .....
real-challo
02.05.04, 15:22
ne tut nich:
su: Diese Option benötigt ein Argument -- »c«
Wenn Du root bist, und als user ausführen möchtest :
su - user -c "programm"
Wenn Du user bist, und als root ausführen möchtest, musst du sudo benutzen ! (oder root bekommt kein Passwort -aber das willst du sicherlich nicht!)
ja der user soll das script ausführen.
also so?
#!/bin/bash
sudo
cd /xxx
./yyy
Also, bei mir funktioniert das gut so wie ich es vorhin geschrieben habe, fehlten nur die Zeichen:
su -c "cd /pfad/sonstwohin && ./prog1"
führt zur Passwortabfrage und wenn erfolgreich, dann startet das Programm.
Wenn Du user bist, und als root ausführen möchtest, musst du sudo benutzen ! (oder root bekommt kein Passwort -aber das willst du sicherlich nicht!)
Das stimmt so nicht.
Also, bei mir funktioniert das gut so wie ich es vorhin geschrieben habe, fehlten nur die Zeichen:
su -c "cd /pfad/sonstwohin && ./prog1"
führt zur Passwortabfrage und wenn erfolgreich, dann startet das Programm.
hast recht so funktionierts :)
danke dir!!
bitte, bitte! gern geschehen!
Alternativ geht auch folgendes:
#!/bin/su root
cd /pfad/sonstwohin
./prog1
cd /pfad/woandershin
./prog2
Alternativ geht auch folgendes:
#!/bin/su root
cd /pfad/sonstwohin
./prog1
cd /pfad/woandershin
./prog2
joa geht auch :)
danke auch an dich.
könnte man auch innerhalb des scripts wieder zu user wechseln und noch ein prog. als user starten?
könnte man auch innerhalb des scripts wieder zu user wechseln und noch ein prog. als user starten?
Naja, man könnte das Prog per
su -c "Programm" USER
starten oder ein zweites Skript aufrufen, das mit
#!/bin/su USER
anfängt. Aber, für den Fall ist Icefaces Lösung wohl besser geeignet (weil da alles, was nicht in deer su-Zeile steht, als User ausgeführt wird)
hm... da gibts dann aber ein problem...
das letzte programm bleibt in der konsole aktiv und dadurch wird das nächste (user-prog.) nicht gestartet bis ersteres beendet wird.
aber is auch nicht soo wichtig. die zwei klicks zum starten bekomm ich schon noch hin ;)
das letzte programm bleibt in der konsole aktiv und dadurch wird das nächste (user-prog.) nicht gestartet bis ersteres beendet wird.
Du kannst ein Programm mit "&" in den Hintergrund schicken, danach kann das nächste Programm gestartet werden.
muß aber leider im vordergrund bleiben da ich es sonst nicht bedienen kann.
Du kannst es doch erst mal in den Hintergrund schicken, das nächste Programm starten und dann wieder in den Vordergrund bringen. "screen" würde sich da anbieten, geht aber auch ohne.
muß aber leider im vordergrund bleiben da ich es sonst nicht bedienen kann.
Dann starte das erste Programm in einem eigenem xterm:
su -c "xterm -e 'cd /pfad/sonstwohin && ./prog1'"&
ne irgendwie klappt das nicht.
so sieht das immoment aus, die pfade hab ich weggelassen, die brauch ich in dem fall hier ja nicht.
#!/bin/bash
su -c "rcdvb start && runvdr"
danach sollte jetzt noch "kvdr" starten, als user. runvdr bleibt (und muß auch) in der konsole aktiv.
alle versuche runvdr in einem extra xterm zu starten haben nicht funktioniert... aber das lag bestimm an mir :rolleyes:
danach sollte jetzt noch "kvdr" starten, als user.
Warum startest Du das Programm nicht schon vorher als user und bringst es in den Hintergrund? Danach starte als root den Rest.
Wann das Programm gestartet wird, sollte in Deinem Fall eigentlich egal sein:
#!/bin/bash
kvdr &
su -c "rcdvb start && runvdr"
Hoffe das hilft, ansonsten sieh Dir mal "screen" an, damit kann man mehrere virtuelle Terminals auf einer Konsole verwalten.
ne das geht leider nicht.
kvdr gibt da ne fehlermeldung aus, sprich ich kann es erst starten wenn der vdr auch läuft.
aber bevor ich mir jetzt noch einen mit "screen" abbreche starte ich kvdr lieber von hand. so übermäßig oft benutze ich das ganze ding dann doch nicht.
nochmals danke an euch zwei!
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.