rc.local probleme

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
OnkelDave
Beiträge: 231
Registriert: 30.11.2009 16:21:13

rc.local probleme

Beitrag von OnkelDave » 06.01.2010 11:21:55

moinsen @ all debian lovers,

habe ein riesen problem!
meine /etc/rc.local streigt und verarbeitet immer nur die ersten Einträge....?!
hab schon überlegt ob ich meine sektionen vielleicht in einzelne scripte packe und sie dort nur aufrufe....aber ist ja im enteffekt das gleiche :(

könnte mir jemand helfen oder weis sogar warum die rc.local immer so zickig ist?

Code: Alles auswählen

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# OpenVPN Bridged Netzwerkkarte initialisieren 
/usr/local/bin/openvpn/openvpn-bridge start

# Routingpfade
route add -net default gw 192.168.10.4 netmask 0.0.0.0

# OpenVPN starten
openvpn /etc/openvpn/Server.ovpn

# VNC-Server Desktop1 Initialisierung
/etc/init.d/vnc start

# TEST DesktopOberfläche initialisieren
/root/.vnc/xstartup

# Netzlaufwerke mounten
mount -a

exit 0

OnkelDave
Beiträge: 231
Registriert: 30.11.2009 16:21:13

Re: rc.local probleme

Beitrag von OnkelDave » 06.01.2010 11:40:46

ich glaube ja fast schon das wenn einen fehler zurückgibt, das der rest ignoriert wird....kann das sein?
wie kann man dagegenstuern?
ich meine die befehle müssen initialisiert werden und wenn ich es per hand tue funktioniert es doch auch!
das kommt mir sehr spanisch vor ;)

jeff84
Beiträge: 324
Registriert: 15.07.2009 13:32:36

Re: rc.local probleme

Beitrag von jeff84 » 06.01.2010 12:05:33

Welche Befehle werden denn alles abgearbeitet und welche nicht? Oder variiert das?

Kann es sein, dass es was bringt bestimmte Befehle per '&' in den Hintergrund zu schicken?

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Re: rc.local probleme

Beitrag von cosmac » 06.01.2010 12:42:30

hi,
OnkelDave hat geschrieben:ich glaube ja fast schon das wenn einen fehler zurückgibt, das der rest ignoriert wird....kann das sein?
in der Tat, das "-e" in der ersten Zeile der /etc/rc.local bewirkt dieses Verhalten.
wie kann man dagegenstuern?
man könnte das "-e" entfernen, aber so einfach kann's nicht sein. Irgendwer hat es schließlich extra da rein geschrieben, aber mir ist völlig schleierhaft, warum. Vielleicht kann uns ein Debian-Guru aufklären?

Andererseits sollte das in deinem Fall doch nicht das Problem sein, weil ja jeder deiner Befehle auf die Befehle davor angewiesen ist. Das "mount" würde doch sowieso nicht funktionieren, wenn z.B. "vnc start" schief geht. Insofern ist das "-e" (in diesem speziellen Fall) sogar sinnvoll.
Beware of programmers who carry screwdrivers.

OnkelDave
Beiträge: 231
Registriert: 30.11.2009 16:21:13

Re: rc.local probleme

Beitrag von OnkelDave » 06.01.2010 14:50:08

ja das variiert ziemlich..stell das aber auch zu oft um, um es jetzt genau sagen zu können!

aber das -e ist übelst sinnlos!

(mount -a bezieht sich auf netzwerkfreigaben die gemountet werden sollen und vnc server implementiert das man mit dem dazugehörigen viewer eine remotekontrolle über den rechner gekommt.- ist ja nicht gesagt das mountpoints davon abhängen ob die remotekontrolle funktioniert....natürlich könnte man sagen netzwerk im allgemeinen, aber es könnte ja auch sein das der server worauf sich die mountpoints beziehen gar nicht erreichbar ist und vnc trotzdem funktioniert!)

meistens, finde ich, hat das fehlversagen was damit zu tun das die timings überschritten werden oder dienste einfach noch nicht vollständig initialisiert sind und es wird probiert sie zu nutzen...na klar gehts dann nicht.....ABER WARUM....schleißlich ist die rc.local der letzte dienst / prozess der initialisiert wird! (darum nutze ich es ja überhaupt)

hab aber rausgefunden, das man auf -e verzichten kann oder alle seine commands einfach noch mit einem || true ausstattet, so ist gewährleitest das er nicht abbricht wenn was schief läuft!
werde das erstmal alles testen mit den doppel pipline true usw

achja: und ein ln -s /etc/rc.local /etc/rc3.d/S99rclocal funktioniert auch nicht, weil schon vorhanden...egal in welcher init ;)

werde euch bericht erstatten
und vielleicht findet sich ja wirklich jemand...der da durchblickt ;)

DANKE
gruß dave

Antworten