Autostart mit rc.local oder init.d

Das Kamel

Das Kamel

Mitglied
Moin,

als erstes mal meine Ausgangssituation:
FSC RX100S3 mit Debian Squeeze AMD64, ohne grafische Oberfläche.

Ich möchte ein (ggf. auch mehrere Programme) automatisch starten lassen.

Im Moment habe ich das Ganze über einen Eintrag in rc.local realisiert.

Code:
cd /home/ts3
su ts3 ./home/ts3/ts3server_startscript.sh start

Nun habe ich mich noch ein bisschen belesen und bin darauf gestoßen dass der Inhalt von rc.local prinzipiell als root ausgeführt wird. Ich bin mir nicht ganz sicher ob das mit dem su funktioniert.

Deshalb nun meine Frage:
Ist das bezüglich der Sicherheit des Servers so in Ordnung oder sollte man das lieber über ein Script in init.d machen?
 
Hi

Wieso muss ts3 den Server starten?

Grundsätzlich finde ich rc.local den richtigen Ort.
 
Wenn Du ueber su erreichst, dass das Programm als 'ts3' tatsaechlich ausgefuehrt wird, ist das ja kein Problem. Ob der Start nun ueber rc.local oder ein Skript in init.d ausgefuehrt wird, aendert daran ja nichts.
Andere Frage: Funktioniert Dein Skript? Laut 'man su' muesste der Befehl doch mit der Option '-c' erfolgen. Ausserdem ist dafuer eher 'sudo' das eigentlich Programm, denke ich.
 
Komisch, meine Bash scheinbar nicht (ist btw auch Debian Squeeze ;) )
Code:
root@atlantis:~# which whoami
/usr/bin/whoami
root@atlantis:~# ls -l /usr/bin/whoami
-rwxr-xr-x 1 root root 27472 28. Apr 2010  /usr/bin/whoami
root@atlantis:~# su headcrash /usr/bin/whoami
/usr/bin/whoami: /usr/bin/whoami: Kann die Datei nicht ausführen.
root@atlantis:~# su headcrash -c /usr/bin/whoami
headcrash
man sollte sich nicht auf "das funktioniert so" verlassen.

Über "su" oder "sudo" kann man an dieser Stelle streiten, ich bevorzuge an dieser Stelle "su".

Ob /etc/rc.local oder ein Skript in init.d das auch nichts anderes macht ist gemschack Sache, die Skripte in /etc/init.d werden auch als root gestartet.
Ein sauberes Start/Stop-Skript im in init.d finde ich für Server Dienste besser. Einfach weil es eine zentrale Anlaufstelle ist.

@Kamel
Einfach als root das ganze Stück für Stück ausführen ;)
Ob der Prozess mit dem richtigen User läuft findust du mittels "ps aux | grep ts3" heruas.
Dann solltest du eine Zeile in der Ausgabe finden, die so ähnlich aussieht:
Code:
ts3       1668  0.2  0.9 143268  4932 ?        Sl   Jan31 187:03 ./ts3server_linux_amd64 inifile=ts3server.ini

@Remidemi
Teamspeak gibt die root-Rechte die er beim starten erhält nicht wieder ab und liefert an dieser Stelle lieber eine deutliche Warnung,
dass man den Dienst bitte nicht als root starten und laufne lassen sollte.

mfg
HeadCrash
 
Zuletzt bearbeitet:
@HeadCrash

der ts3 Server läuft unter dem entsprechendem user.

Den Parameter -c habe ich noch eingefügt.

Vielleicht erstelle ich bei Gelegenheit noch ein Script für init.d.
Vorerst werde ich es aber so lassen, das es ja offensichtlich kein Sicherheitsrisiko darstellt.

Besten Dank ;)
 
Alternativ mit 'update-rc.d' entsprechenden Runleveln zuweisen.
 

Ähnliche Themen

Keine grafische Oberfläche (Debian Installation)

[HowTo] NVidia und 3D unter SuSE/openSUSE

Zurück
Oben