Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Shellscript beim Systemstart ausführen

Empfohlene Antworten

Veröffentlicht

Hallo,

ich habe vor mit Linux einen CD-Rom Server ins Netz zu stellen. Dazu habe ich mit dd if= / of= Images der gewünschten CDs erstellt und diese Dateien in /home/User abgelegt. Gemountet hab ich sie dann mit

mount /home/user/image/test home/user/image/c't-CD -o loop,unhide

Geht auch alles wunderbar. Um das ganze noch zu beschleunigen, habe ich mir ein Shell Skript geschrieben, das alle Images an der richtigen Stelle mountet. Jetzt weiss ich aber nimma weiter, bin noch neu in Linux.

Wie bekomme ich es hin, dass dieses Shellskript beim Systemstart automatisch ausgeführt wird?? Ich mag net jedesmal manuell mounten, bzw. das Skript ausführen. Bin mir eben nicht ganz sicher und frag lieber mal nach!

Die andere Sache ist, das Skript lässt sich nur als root ausführen, wenn ich es als User versuche, bekomme ich immer die Meldung "nur root kann dies tun" - und das stimmt leider auch. Wie muss ich also die Rechtevergabe gestalten, um als User dieses Skript ausführen zu können.

Ich denke mal es geht nicht direkt um das Ausführen eines Skriptes, sondern ich denke dass Linux den User net Mounten lassen will. Denn die Meldung "nur root kann dies tun" kommt so oft wie ich mount-befehle im Skript habe.

Ich hoffe ihr könnt mir helfen!

Ich benutze Suse 8.2!!

Mfg Ulturasepp

Hi,

was beinhaltet das Shellskript?? Nur das gemounte? Wenn das so ist, dann seh dir erstmal die /etc/fstab bzw. man fstab an, diese Datei ist dafür verantwortlich Dateisysteme bei booten automatisch zu mounten.

Falls es nicht der Fall ist und du in deinem Shellskript noch irgendwas anderes tust außer mounten gibts noch (min.) 2 Möglichkeiten:

1. die nicht sehr saubere Lösung - da es ja zum booten passieren soll (eher unschlau, aber ne Möglichkeit):

Du richtest dir nen Cronjob ein, der das Shellskript sagen wir mal, alle 2 Stunden ausführt. (wirklich keine richtige Lösung, da du aber Neuling bist - für dich auch mal interessant ;) )

2. die bessere Lösung:

Du schaust mal bei google.de unter "init.d Skripte", beim hochfahren werden z.B. alle Skripte die unter /etc/init.d/ liegen der Reihe nach ausgeführt, ABER auch nur wenn du angibst, in welchem Runlevel (google - runlevel unter Linux) das passieren soll. Dazu gibts unter /etc/init.d/ mehrere Verzeichnisse, ich glaube in deinem Fall

interessant /etc/init.d/rc3.d/ und /etc/init.d/rc5.d/. Du packst dein Skript z.B. und schmeist es in den Ordner /etc/init.d/

wechselst zu rc3.d/ oder rc5.d/ und machst dort mit "ln -s" (man ln <--hilft dir hier weiter) einen symbolischen Link auf dein Skript (je nach Anfangsnr. startet das Skript z.B. S99mountISO wird als letzes Skript beim booten gestartet. Nun wenn du deinen Rechner mit "init 1; init 3 bzw. init 1; init 5" re-bzw. bootest, dann werden deine ISOs autom. gemountet sein.

Nachtrag: WICHTIG! Wenn du Skripte in init.d einhängst, dann sollten sie immer so gestartet werden, dass sie auch alles haben was sie brauchen - auf deutsch gesagt.

Wenn du z.B. ein Skript hast, dass mit wget irgendein File downloaded, du es aber vor dem Skript startest, dass das Netzwerk hochfährt - wirst du damit Probleme bekommen.

Es in die fstab zu schreiben wäre natürlich die eleganteste Lösung! Hab das auch schon versucht gehabt bin aber net ganz klar gekommen!

Im Skript sind nur Mountbefehle, sonst nix!

Der Mountbefehl in meinem fall lautet:

mount /home/Beispiel/CD-Images/LinuxDisk1 /home/Beispiel/Mount/LinuxDisk1 -o loop,unhide

dass also das Image mit dem Namen LinuxDisk1 in den Ordner LinuxDisk1 gemountet wird!

Hab leider net gecheckt wie ich diesen Befehl in die fstab bringe, dass es auch hinhaut! Wenn da jemand weiss wies geht, nur her mit Vorschlägen!

Werd morgen mal Deine zweite Lösung probieren Schlaubi, die scheint mir am besten.

Morgen weiss ich mehr

Original geschrieben von Schlaubi

interessant /etc/init.d/rc3.d/ und /etc/init.d/rc5.d/

Skripte die nur einmal gestartet werden soll, legt man besser in /etc/rcS.D ab.

Diese Skripte werden nur beim Systemstart ausgeführt, und nicht bei jedem Runlevel-Wechsel

Gruß

Terran Marine

Ja das hatte ich mir schon rausgesucht!

Hab leider keine Ahnung wie ich den Befehl da eintragen soll!

Wohin mit loop, unhide ?

In der fstab Dokumentation hab ich nix gefunden!

Geht das denn überhaupt mit fstab?

Original geschrieben von Ulturasepp

Wohin mit loop, unhide ?

In der fstab Dokumentation hab ich nix gefunden!

Geht das denn überhaupt mit fstab?

Ich hatte mir mal eine Suse CD als ISO abgelegt, in der fstab , wird diese wie folgt gemountet :

ablage/suse8.1.iso /ablage/suse iso9660 loop,auto 0 0

Gruß

Terran Marine

Original geschrieben von Terran Marine

Ich hatte mir mal eine Suse CD als ISO abgelegt, in der fstab , wird diese wie folgt gemountet :

ablage/suse8.1.iso /ablage/suse iso9660 loop,auto 0 0

Und genau so gehts! Thx Terran Marine und Schlaubi!

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.