Skript automatisch starten klappt nicht

KaioShin

New Member
Hallo!

Bin noch ziemlich neu mit BSD und daher kann es gut sein das ich irgendwas total offensichtliches übersehe... ich bitte im vorraus um Verständnis.

Mein Problem: Ich möchte bei Systemstart einen VNC-Server automatisch starten lassen. Dazu hab ich die doku zu rc gelesen aber so richtig scheint es nicht zu klappen. Das Skript funktioniert wenn ich es manuell mit start / stop aufrufe, aber es wird nicht bei Systemstart automatisch ausgeführt. Das Skript liegt in /usr/local/etc/rc.d/

Das Skript sieht folgendermaßen aus:

Code:
#!/bin/sh

# PROVIDE: vncserver
# REQUIRE: NETWORKING SERVERS DAEMON

. /etc/rc.subr

name="vncserver"
vncserver_user="userX"
rcvar=`set_rcvar`
start_cmd="vncserver_start"
stop_cmd="vncserver_stop"
restart_cmd="vncserver_restart"

vncserver_start()
{
    echo 'vnc startet...'
    /usr/local/bin/vncserver :2
}
vncserver_stop()
{
    echo 'vnc stoppt...'
    /usr/local/bin/vncserver -kill PcName:2
}
vncserver_restart()
{
    echo 'vnc startet neu...'
    /usr/local/bin/vncserver -kill PcName:2
    /usr/local/bin/vncserver :2
}

load_rc_config $name
run_rc_command "$1"

Den Teil bei REQUIRES hab ich mehr oder weniger von Samba geklaut, ich hab keine Ahnung wovon vncserver abhängig ist. Davon abgesehen, wie gesagt das Skript funktioniert wenn man es manuell ausführt.

In die /etc/rc.conf hab ich folgendes eingetragen:
Code:
vncserver_enable="YES"

Wenn ich /usr/local/etc/rc.d/vncserver rcvar auführe zeigt er auch an:
Code:
vncserver_enable="YES"

Was mache ich falsch dass es beim booten nicht ausgeführt wird?

Und noch ein kleines btw: Wie wird es richtig gemacht das ein anderer user als root einen Befehl im Skript ausführt? vncserver startet automatisch xfce4 und da will ich nicht unbedingt sofort als root eingeloggt sein. Ich hab im man gelesen das dafür die {$name}_user variable genutzt werden soll, aber mir ist nicht klar wie genau die genutzt wird. Ein Beispiel wäre evtl ganz gut.

Danke schonmal.
 
hallo!
erstmal herzlich willkommen!

ich empfehle dir, diesen abschnitt im handbuch zu lesen, und es wird dir bestimmt helfen:
http://www.freebsd.org/doc/de/books/handbook/configtuning-starting-services.html

demnach kannst du diese zeilen komplett löschen:

Code:
stop_cmd="vncserver_stop"
restart_cmd="vncserver_restart"

vncserver_start()
{
    echo 'vnc startet...'
    /usr/local/bin/vncserver :2
}
vncserver_stop()
{
    echo 'vnc stoppt...'
    /usr/local/bin/vncserver -kill PcName:2
}
vncserver_restart()
{
    echo 'vnc startet neu...'
    /usr/local/bin/vncserver -kill PcName:2
    /usr/local/bin/vncserver :2
}

und folgende zeile wie folgt umgestalten:

statt

Code:
start_cmd="vncserver_start"

das hier:

Code:
command="/usr/local/bin/vncserver :2"

muss es unbedingt vnc sein? wie wär's mit xdmcp+gdm? dann hast du auch nicht das problem mit deiner zweiten frage (...glaube ich).

mfg
 
Zuletzt bearbeitet:
Moin KaioShin.

Schau doch mal in den Logfiles nach, ob der VNCServer irgend etwas zu melden hatte. Du kannst auch die Bootmeldungen ansehen, indem Du auf die erste Konsole wechselst (Strg+Alt+F1), dann die "Rollen"-Taste drückst und anschließend mit den Cursor hoch/runter die Meldungen durchblätterst.

Ich vermute(!!!) ein fehlendes X11.

JueDan
 
Zurück
Oben