rc.local wird beim boot nicht ausgeführt. Was ist da los?

Status
Für weitere Antworten geschlossen.

CH3SNAS

Benutzer
Mitglied seit
20. Jul 2010
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
Hallo Zusammen,

ich lese hier immer fleißig mit, bekomme dieses Problem aber nicht gelöst, auch wenn ich ähnliche Themen dazu lesen konnte.
Es geht darum Symlinks beim Start der Diskstation zu erstellen. Als Anleitung diente mir folgender Link: http://forum.synology.com/wiki/index.php/Permanent_symbolic_links

Ich habe das soweit auch alles hinbekommen, trotz sehr wenig Erfahrung mit Konsole und Befehlen. Die Datei rc.local musst ich neu erstellen, da sie bei mir noch nicht vorhanden war.

Dies ist der Inhalt meiner rc.local:

#!/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.

# symlinks erstellen
mount -o bind "/volume1/gemeinsamer Ordner Volume 1/Kinderlieder/" /volume1/homes/Karsten/music/l_Kinderlieder
mount -o bind "/volume1/gemeinsamer Ordner Volume 1/Hörspiele für Erwachsene/" "/volume1/homes/Karsten/music/l_Hörspiele für Erwachsene"
mount -o bind "/volume1/gemeinsamer Ordner Volume 1/Hörspiele für Kinder/" "/volume1/homes/Karsten/music/l_Hörspiele für Kinder"
mount -o bind "/volume1/gemeinsamer Ordner Volume 1/Kinderlieder/" /volume1/homes/Ricarda/music/l_Kinderlieder
mount -o bind "/volume1/gemeinsamer Ordner Volume 1/Hörspiele für Erwachsene/" "/volume1/homes/Ricarda/music/l_Hörspiele für Erwachsene"
mount -o bind "/volume1/gemeinsamer Ordner Volume 1/Hörspiele für Kinder/" "/volume1/homes/Ricarda/music/l_Hörspiele für Kinder"

exit 0

Die Datei habe ich mit Wordpadd++ als Unix-Datei erstellt. Übertragen habe ich die dann mit Winscp und damit auch ausführbar gemacht (775). Formatierung UTF8 ohne BOM. Owner ist ROOT.

Führ ich die Datei manuell aus, werden alle Ordner gemountet, die Skriptinhalte sind also soweit OK.

Jedoch passiert beim booten überhaupt nichts. Sinn war eigentlich, dass die Datei automatisch abgearbeitet wird.

Nach vielem googeln habe ich eventuell einen Ansatz zur Diagnose gefunden. Es fehlen vielleicht Path variablen, die Datei ist in der Systemumgebung nicht bekannt. Es ist oftmals auch die Rede von etc/profile, wo ein Symlink zur rc.local fehlt. Dies ist jetzt allerdings Halbwissen, es zeigt, dass ich viel gefunden habe, aber leider zu wenig Background habe, dies nun zu korrigieren.

Wäre echt super, wenn hier jemand eine Idee dazu hat. Das Thema ist auch hier nicht neu, aber ich konnte keine Lösung erkennen, die ich so umsetzen könnte.

Danke schon mal für eine Antwort,

Karsten
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
muss es unbedingt ein mount sein? Problem: die mounts musst du beim Shutdown/Reboot auch entfernen, sonst bleibt das Teil u.U. hängen.
Ich würde symlinks empfehlen, die muss man nur einmal erstellen und verhindern nicht das saubere Runterfahren/Reboot
Code:
ln -s "/volume1/gemeinsamer Ordner Volume 1/Kinderlieder/" /volume1/homes/Karsten/music/l_Kinderlieder
 

CH3SNAS

Benutzer
Mitglied seit
20. Jul 2010
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
Hallo Jahlives,

Danke für die schnelle Antwort. Ich hatte davon gelesen und mich deswegen dagegen entschieden: http://www.king-foo.com/2010/06/change-folders-for-synology-media-server/

Das Indexen klappt mit mount bind besser. Ich hatte auch noch einen anderen Artikel gefunden, in dem es hieß mount bind für auch per ftp und samba erkannt. Deine Symlinks haben da wohl auch bei vielen anders reagiert.

Das mit dem unmounten kann ich aber auch lösen:

case $1 in
start)
/bin/mount -o bind "/volume1/gemeinsamer Ordner Volume 1/Kinderlieder/" /volume1/homes/Karsten/music/l_Kinderlieder
/bin/mount -o bind "/volume1/gemeinsamer Ordner Volume 1/Hörspiele für Erwachsene/" "/volume1/homes/Karsten/music/l_Hörspiele für Erwachsene"
/bin/mount -o bind "/volume1/gemeinsamer Ordner Volume 1/Hörspiele für Kinder/" "/volume1/homes/Karsten/music/l_Hörspiele für Kinder"
/bin/mount -o bind "/volume1/gemeinsamer Ordner Volume 1/Kinderlieder/" /volume1/homes/Ricarda/music/l_Kinderlieder
/bin/mount -o bind "/volume1/gemeinsamer Ordner Volume 1/Hörspiele für Erwachsene/" "/volume1/homes/Ricarda/music/l_Hörspiele für Erwachsene"
/bin/mount -o bind "/volume1/gemeinsamer Ordner Volume 1/Hörspiele für Kinder/" "/volume1/homes/Ricarda/music/l_Hörspiele für Kinder"
;;
stop)
/bin/unmount -o bind "/volume1/gemeinsamer Ordner Volume 1/Kinderlieder/" /volume1/homes/Karsten/music/l_Kinderlieder
/bin/unmount -o bind "/volume1/gemeinsamer Ordner Volume 1/Hörspiele für Erwachsene/" "/volume1/homes/Karsten/music/l_Hörspiele für Erwachsene"
/bin/unmount -o bind "/volume1/gemeinsamer Ordner Volume 1/Hörspiele für Kinder/" "/volume1/homes/Karsten/music/l_Hörspiele für Kinder"
/bin/unmount -o bind "/volume1/gemeinsamer Ordner Volume 1/Kinderlieder/" /volume1/homes/Ricarda/music/l_Kinderlieder
/bin/unmount -o bind "/volume1/gemeinsamer Ordner Volume 1/Hörspiele für Erwachsene/" "/volume1/homes/Ricarda/music/l_Hörspiele für Erwachsene"
/bin/unmount -o bind "/volume1/gemeinsamer Ordner Volume 1/Hörspiele für Kinder/" "/volume1/homes/Ricarda/music/l_Hörspiele für Kinder"
;;
*)
echo "Usage: $0 [start|stop]"
;;
esac

Mit diesen Befehlen sollte das kein Problem sein. Kann ich auch in die rc.local einfügen. Was bleibt ist das Problem mit dem booten.

Wäre dankbar für Tipps zur Fragestellung, wenn auch das nennen von Alternativen gut ist. Ich habe mich da jetzt festgebissen und will das so zu Ende bringen wie ich es mir vorgenommen hatte ;-)
 

CH3SNAS

Benutzer
Mitglied seit
20. Jul 2010
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
So,

Ich habe ein stinknormales Script mit dem Inhalt von oben erstellt, das scheint so erstmal zu funktionieren. Ob das so in der rc.local funktioniert weiß ich nicht, da habe ich zu wenig Ahnung von. Aber das Problem dass die rc.local beim booten nicht berücksichtigt wird haben auch viele andere, so mein Eindruck beim suchen nach einer Lösung. Eins noch als Ergänzung: ich habe es auch mit verschiedenen Pausen befehlen (sleep) probiert, aber daran lag es scheinbar auch nicht. Habe bis zu einer Minute gewartet mit dem Bind Befehl, da hätten abhängige Prozesse längst aufgerufen sein sollen...
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Ich bin gar nicht sicher dass rc.local beim Shutdown überhaupt ausgeführt würde (wegen dem umonunt)
 

MaCoM

Benutzer
Mitglied seit
06. Dez 2009
Beiträge
347
Punkte für Reaktionen
0
Punkte
0
Die Datei rc.local musst ich neu erstellen, da sie bei mir noch nicht vorhanden war.

wo liegt den deine rc.local ?
und ich denke auch das die rc.local nicht mit start/stop ausgefuert wird.
 

CH3SNAS

Benutzer
Mitglied seit
20. Jul 2010
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
Hallo Macom,

nachdem was ich so jetzt noch so über die rc.local gelesen habe, habt ihr glaube ich recht damit, dass der unmount da keinen Sinn macht.

Ich bin gerade nicht zu Hause, aber ich bin mir relativ sicher, dass der Pfad /usr/local/etc/rc.d/ war. Wäre das der korrekte Pfad?
 

MaCoM

Benutzer
Mitglied seit
06. Dez 2009
Beiträge
347
Punkte für Reaktionen
0
Punkte
0
da liegt bei mir auch keine rc.local aber die normalen startscrips.

die orginal rc.local liegt bei mir unter /etc/rc.local
 

CH3SNAS

Benutzer
Mitglied seit
20. Jul 2010
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
OK, das werde ich heute Abend checken. Scheint wahrscheinlich zu sein, dass mein Pfad falsch ist.

Wenn ich bei der Lösung bleibe, dass ich ein "normales" .sh Skript im Ordner usr/etc/local/rc.d habe, wird denn dann dort der unmount Befehl beim Herunterfahren oder Neustarten berücksichtigt? Ich müsste mich dann nämlich fragen, ob ich bei der Variante mit dem skript.sh bleibe (das scheint zu funktionieren) oder in dem anderen Ordner (dein Pfad) die rc.local nutze, wie ich es eigentlich vor hatte. Der Verfasser der Anleitung des Eingangslink, an dem ich mich orientiert habe wird sich ja was dabei gedacht haben, ob die local.sh oder ein normales Skript genommen wird. Hat es einen Vorteil, die rc.local zu nutzen?

Da dort der unmount Befehl wahrscheinlich nicht verarbeitet wird, sehe ich da eher einen Nachteil, aber als Noob kann ich das nicht wirklich beurteilen... Wichtig wäre mir, dass bei Synology Updates des DSM das ganze nicht kaputt gepatcht wird, dass die Befehle also "überleben" !
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.803
Punkte für Reaktionen
3.760
Punkte
468
Ich hab jetzt nicht alles gelesen. Vielleicht ist die rc.local beim Booten einfach zu früh dran. Und beim Shutdown wird rc.local ganz sicherlich nicht mit "stop ausgeführt.

Probier es mal, das Script als "normales" Start-/Stop-script, z.B als S99mount.sh in /usr/syno/etc/rc.d/ unterzubringen. Ich hab meine Scripte auch da.
 

CH3SNAS

Benutzer
Mitglied seit
20. Jul 2010
Beiträge
15
Punkte für Reaktionen
0
Punkte
1
Hi Benares,

das wird wohl gehen, aber im Unterpfad syno ist es wahrscheinlich nicht sicher vor vor DSM updates. Hatte ich zumindest in einem anderen Thread gelesen.

@ Macom: unter etc/rc.local habe ich auch keine.

Ich nehme jetzt den Pfad /usr/local/etc/rc.d/ und nenne das Script S99mount.sh wie von Benares vorgeschlagen, scheint das Gängigste zu sein und wird wohl funktionieren.

Vielleicht kommt ja noch mal Input zur rc.local, ansonsten erstmal vielen Dank für die Antworten, ich gönne mir jetzt ein Bier ;-)
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.803
Punkte für Reaktionen
3.760
Punkte
468
Na ja, ich hab meine Scripts irgendwo unter /volume1 geparkt. Nach einem größeren Update kopiere ich Sie halt wieder nach /usr/local/etc/rc.d.
Bei den kleineren Updates (Update1 -> Update 2 usw.) bleiben Sie normalerweise erhalten.
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
in /usr/syno/etc/rc.d/ unterzubringen. Ich hab meine Scripte auch da.
Eigene Start-Skripte gehören in /usr/local/etc/rc.d/ (ggf. anlegen), da überleben sie auch ein FW-Update.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
13.803
Punkte für Reaktionen
3.760
Punkte
468
Danke Merthos, stimmt. Da hab ich auch welche liegen. Muss das mal bereinigen.
Weisst du auswendig, welches Verzeichnis zuerst dran ist? - Na, ja ich schau mal nach.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat