+-Serie Bootzeit ewig lange

Alle Geräte der +-Serie. Geräte für kleinere und mittlere Unternehmen.
Status
Für weitere Antworten geschlossen.

baeumer

Benutzer
Mitglied seit
10. Aug 2008
Beiträge
247
Punkte für Reaktionen
0
Punkte
0
Ich hatte beides schon probiert mit gleichem Ergebnis. Mit vi hatte ich diese Anleitung (siehe #10) ausgeführt.

Ich gebe vorerst auf.
Aber kann ich denn in /etc/rc.local auch start/stop-Befehle eingeben? Vielleicht würde das helfen.
 

thedude

Benutzer
Mitglied seit
30. Nov 2009
Beiträge
2.244
Punkte für Reaktionen
2
Punkte
84
Aber kann ich denn in /etc/rc.local auch start/stop-Befehle eingeben? Vielleicht würde das helfen.

rc.local wird nicht beim runterfahren ausgeführt. Bringt also nix in diesem Fall. Ich würde an Deiner Stelle die zwei mounts erstmal weglassen - bis geklärt ist warum das nicht funktioniert. Allemal besser als ständig den filecheck ertragen zu müssen.

gruss
dude
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Das Script schonmal zum Test mit sh aufgrufen? Also
Code:
sh /usr/syno/etc.defaults/rc.d/S99mount.sh stop
 

baeumer

Benutzer
Mitglied seit
10. Aug 2008
Beiträge
247
Punkte für Reaktionen
0
Punkte
0
Wieder ein Stück näher...

Scheinbar ist doch ein Fehler im Script, die Datei wird wohl ausgeführt:

Rich (BBCode):
DiskStation> sh S99mount.sh stop
: not found: S99mount.sh: 6: 
S99mount.sh: S99mount.sh: 7: Syntax error: word unexpected (expecting "in")

Script:

Rich (BBCode):
#!/bin/sh
#
# S99mount.sh - startup script for mount
#
# This goes in /usr/syno/etc/rc.d and gets run at boot-time.

case "$1" in

start)
	mount --bind / /volume1/root
	;;

stop)
	umount /volume1/root
	;;

*)
	echo "usage: $0 { start | stop }"
	exit 1
	;;

esac

Ich hatte das Script nochmal neu angelegt auf Grundlage von S04crond.sh
 

thedude

Benutzer
Mitglied seit
30. Nov 2009
Beiträge
2.244
Punkte für Reaktionen
2
Punkte
84

baeumer

Benutzer
Mitglied seit
10. Aug 2008
Beiträge
247
Punkte für Reaktionen
0
Punkte
0
Nein, eben nicht.
Habe mich im vorigen Post schlecht ausgedrückt. Ich erhalte og. Fehlermeldung beim Ausführen (Script hatte ich auch abgedruckt)
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Hast du es mal ohne case probiert, also in etwa so
Code:
if [ "$*" = "start" ]; then
 mount --bind / /volume1/root
elsif [ "$*" = "stop" ]
 umount /volume1/root
else
 echo "Usage script start|stop"
fi
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Nein, eben nicht.
Habe mich im vorigen Post schlecht ausgedrückt. Ich erhalte og. Fehlermeldung beim Ausführen (Script hatte ich auch abgedruckt)

Ich habe dein Skript gerade mal kopiert und bei mir ausgeführt: es läuft!

Vielleicht sind aber irgendwelche 'nicht-darstellbaren' Zeichen drinne, die man vielleicht erst im vi sieht und die durch das Kopieren hier weg sind. Lösche doch mal alle Leerzeilen und mach eventuelle Tabulatoren weg.

Itari
 

baeumer

Benutzer
Mitglied seit
10. Aug 2008
Beiträge
247
Punkte für Reaktionen
0
Punkte
0
Bin gerade unterwegs und kann nicht testen. Aber ich weiß, daß ich Tabulatoren verwendet habe. Darf ich das? Ich werde durch Leerzeichen ersetzen.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Aber ich weiß, daß ich Tabulatoren verwendet habe. Darf ich das? Ich werde durch Leerzeichen ersetzen.

Eigentlich spricht nichts gegen Tabs - aber du hast ja ein Problem und da wollen wir erst einmal alles Komplizierte (wie eventuell Tabs) außen vor lassen :)

Itari
 

baeumer

Benutzer
Mitglied seit
10. Aug 2008
Beiträge
247
Punkte für Reaktionen
0
Punkte
0
So langsam dämmert es

Ich bin der Lösung um einiges näher gekommen.
Es scheint ein Problem der Codepage zu sein.
Bislang hatte ich das Script auf dem Mac mit TextWrangler bearbeitet. Jetzt habe ich das Script auf Windows mit Notepad++ bearbeitet und unter "Format - Konvertiere zu Unix" eingestellt.
Dann habe ich (wie auch auf dem Mac schon) mit FTP die Datei in den Ordner kopiert und in Telnet mit chmod und chown die Attribute eingestellt.

Siehe da,

Rich (BBCode):
DiskStation> sh S99mount.sh stop   
DiskStation> sh S99mount.sh start
:)


Und das mounting geht sogar.
Jetzt nur noch ein kleines(?) Problem:

Rich (BBCode):
DiskStation> S99mount.sh start   
-ash: S99mount.sh: not found     
DiskStation> S99mount.sh stop    
-ash: S99mount.sh: not found
:confused:

Was ist das? Ist das schlimm? Wird das Script dennoch bei Hoch-/Runterfahren ausgeführt?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Ich bin der Lösung um einiges näher gekommen.
Es scheint ein Problem der Codepage zu sein.
Bislang hatte ich das Script auf dem Mac mit TextWrangler bearbeitet. Jetzt habe ich das Script auf Windows mit Notepad++ bearbeitet und unter "Format - Konvertiere zu Unix" eingestellt.
Dann habe ich (wie auch auf dem Mac schon) mit FTP die Datei in den Ordner kopiert und in Telnet mit chmod und chown die Attribute eingestellt.

Siehe da,

Rich (BBCode):
DiskStation> sh S99mount.sh stop   
DiskStation> sh S99mount.sh start
:)


Und das mounting geht sogar.
Jetzt nur noch ein kleines(?) Problem:

Rich (BBCode):
DiskStation> S99mount.sh start   
-ash: S99mount.sh: not found     
DiskStation> S99mount.sh stop    
-ash: S99mount.sh: not found
:confused:

Was ist das? Ist das schlimm? Wird das Script dennoch bei Hoch-/Runterfahren ausgeführt?
Als Tipp für die Zukunft: Solche Dateien lieber direkt auf der DS bearbeiten. Dann hast du keine Probleme mit den Zeilenendzeichen. Die Codepage an sich ist egal, denn du hast ja nur ASCII Zeichen im Code und die werden nicht speziell codiert.
Und ohne chmod +x musst du eine solche Datei immer mit dem Interpreter (bei dir sh) aufrufen. Also setze die Datei auf ausführbar
Auch würde ich solche Aufrufe mit ./ vor dem Scriptnamen machen (wenn du bereits im entsprechenden Verzeichnis bist). Sonst wird das System zuerst in PATH suchen. Wenn sich dort eine solche Datei befindet dann wird diese ausgeführt und nicht diejenige die du im Verzeichnis ausserhalb von PATH aufrufen willst. Oder du verwendest gleich komplette Pfadangaben, dann ist es eindeutig eindeutig ;)
 
Zuletzt bearbeitet:

baeumer

Benutzer
Mitglied seit
10. Aug 2008
Beiträge
247
Punkte für Reaktionen
0
Punkte
0
Es ist vollbracht

:):):):)

Es geht!! Sowohl das mounten beim Hochfahren, als auch das unmounten beim Runterfahren geht mit dem Script und Filecheck wird auch nicht mehr gemacht.

Vielen Dank an alle, die mir geholfen haben, auch wenn ich mich letztendlich doch wohl etwas blöd angestellt habe. Der Hinweis mit vi kam ja und ich hatte auch mit vi eingegeben, da war aber auch wohl noch ein Tipfehler...

Vielleicht ist das Script auch für andere hilfreich??
 

thedude

Benutzer
Mitglied seit
30. Nov 2009
Beiträge
2.244
Punkte für Reaktionen
2
Punkte
84
Ausserdem musst Du wenn Du dich schon IN dem Ordner befindest in dem das Script auch liegt (hier /usr/syno/etc.defaults/rc.d) immer ein "./" voranstellen. Sonst wird das Script nicht ausgeführt!

Rich (BBCode):
/usr/syno/etc.defaults/rc.d/S99mount.sh

ODER

Rich (BBCode):
ds209> cd /usr/syno/etc.defaults/rc.d/
ds209> ./S99mount.sh

VERDAMMT hat jahlives einfach editiert. ;) Naja egal. :)

gruss
dude
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Ausserdem musst Du wenn Du dich schon IN dem Ordner befindest in dem das Script auch liegt (hier /usr/syno/etc.defaults/rc.d) immer ein "./" voranstellen. Sonst wird das Script nicht ausgeführt!

Rich (BBCode):
/usr/syno/etc.defaults/rc.d/S99mount.sh
ODER

Rich (BBCode):
ds209> cd /usr/syno/etc.defaults/rc.d/
ds209> ./S99mount.sh
VERDAMMT hat jahlives einfach editiert. ;) Naja egal. :)

gruss
dude
Es ist kein müssen nur ein sollen ;)
Solange sich kein gleichnamiges Script in PATH befindet wird
Code:
sh script
problemlos ausgeführt. Hässlich wird es erst dann wenn sich in PATH eine gleichnamige Datei befindet
 
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