su normalerbenutzer -c (und das Passwort?)

S

Sloop

*****@k.root-servers.net
Hallo Linux-Freeks,

ich hab 'n Prob und zwar habe ich einen Daemon, den ich bei jedem Neustart des Rechners automatisch starten möchte. In der Anleitung ist dieses Skript beigefügt, dass ich verwenden möchte:

# Autostart Ventrilo

VENPATH=/home/ventrilo/ventrilo_server
VENBIN=/home/ventrilo/ventrilo_server/ventrilo_srv

su ventrilo -c "$VENBIN -f$VENPATH/3784 -d"

renice -5 `cat $VENPATH/3784.pid`

Da ich keine boot.local oder rc.boot etc.. habe bei Debian 3.1, und auch nicht in /etc/init.d start-stop Skripte habe, dachte ich mir, dass ich einfach eine Datei erstelle namens /etc/ventrilo und dort das Skript reinschreibe. Anschliessend "chmod 755" auf die Datei /etc/ventrilo ausgeführt und sie ist nun ausführbar. Ich habe sogar notfalls auch mit 777 getestet, und auch mein Verzeichnis /home/ventrilo/ventrilo_server wo quasi die Programm-und Configdateien liegen, habe ich ebenfalls mit chmod 777 versehen damit ich alle Fehler ausschliesse. Auch sind all die Datein mit chown und chgrp auf ventrilo gesetzt. Meine user "ventrilo" hatte ich zuvor mit dem Befehl "useradd" erstellt.

Probleme:

(1) Wie soll der Befehl "su ventrilo -c bla bla bla bla" funktionieren in dem Skript, er braucht doch das Passwort von Ventrilo?? Ich kanns zwar jetzt eingeben und der Ventrilo_Server wird daraufhin auch korrekt gestartet, aber beim Systembooten bin ich ja nicht an der Konsole, das muss doch irgendwie automatisch gehen.

(2) der renice-Befehl funzt nicht. Ich krieg die Fehlermeldung "operation not permitted". Ich versteh das nicht. Eigentlich wurde der prozess des laufenden ventrilo_servers mit dem User Ventrilo erstellt. Also hat auch der user Ventrilo laut man-page von 'renice' das Recht seine erstellten Prozesse zu managen. Wieso sagt er mir also dass keine Rechte vorhanden sind für diesen Befehl? Ich habe den Befehl
renice -5 `cat $VENPATH/3784.pid
versucht zu ersetzen mit
renice -5 $(cat $VENPATH\/3784.pid)

aber funzt genauso wenig. Kann da jemand einem Newbie weiterhelfen, ich blick da echt nicht mehr durch.

PS: Daraufhin dachte ich, ich versuchs mit "crontab -e" und einfach das reinschreiben. Aber crontab sagt mir beim Speichern und Beenden, dass er nicht installieren kann, mit Fehlermeldung:
crontab: installing new crontab
"/tmp/crontab.p2gsY2/crontab":3: bad minute
errors in crontab file, can't install.
Do you want to retry the same edit?

Lasse ich die letzte renice Zeile weg, schluck er crontab, aber der ventrilo-server wird beim rebooten trotzdem nicht gestartet.
 
Hallo Sloop

Ich hab zwar kein Debian 3.1 aber ich kann mir nicht vorstellen, dass du kein 'etc/init/' hast, da muss doch mindestens etwas vergleichbares sein.

Wenn das Script mit Root-rechen ausgeführt wird, brauchst du kein Passwort für einen Userwechsel. Root kann per 'su' jede Rolle annehmen.
Wenn du das Script über 'init' oder die Root-Crontab aufrufst sollte das kein Problem sein.

Gruss
d22
 

Ähnliche Themen

CentOS - Samba Einrichtung will einfach nicht funktionieren

Cronjob mit Root-Rechten

Windows clients können nicht mehr auf lange laufendes System zugreifen

Crontab erst nach manuellem Daemon-Neustart

TFTP: Transfer timed out

Zurück
Oben