Page 1 of 1

bash script unter rc.d starten

Posted: 2003-04-30 16:38
by koyote
Hallo,

ich habe testweise ein schönes firewall script (http://monmotha.mplug.org/firewall/index.php) in etc/rc.d/rcfirewall angelegt.

Jetzt aber mal wieder meine Dummy-Frage (irgendwann muss man es ja schliesslich auch mal lernen :wink: ) wie kann ich jetzt dieses script starten? mit "rcfirewall start" geht es nicht. Bzw. Wie kan ich das Script automatisch bei jedem Systemstart laden lassen?

Vielen Dank für die Hilfe!!

Re: bash script unter rc.d starten

Posted: 2003-04-30 16:42
by captaincrunch
Punkt 1: Initscripte gehören unter /etc/init.d

Punk 2 : Zum starten des ganzen machst du dann ein /etc/init.d/FIREWALLSCRIPT start/stop/wasauchimmer

Punkt 3 : Zum automatischen Starten legst du einen Link im /etc/rc{STANDARDRUNLEVEL}.d/-Verzeichnis auf das File unter /etc/init.d an.

Hth

Re: bash script unter rc.d starten

Posted: 2003-04-30 16:56
by pierro
Vielleicht hilft ja

Code: Select all

./rcfirewall start
statt

Code: Select all

rcfirewall start
?

Der Punkt ist wichtig, wenn du als Root ein Skript starten möchtest.

Ein Schuß ins Blaue: Richtige Berechtigung für "rcfirewall" gesetzt?

Code: Select all

chmod +x /etc/rc.d/rcfirewall
Bzw. Wie kan ich das Script automatisch bei jedem Systemstart laden lassen?
Für alle Runlevels:
Skript nach /etc/rc.d/init.d kopieren oder mit "ln" verlinken.

Für ein bestimmtes Runlevel:
Skript nach /etc/rc.d/init.d/rcX.d/ kopieren oder mit "ln" verlinken.
Wobei X das Runlevel (0-6) ist.

Ggf. ist es noch nötig, das Skript umzubenennen.

In rcX.d ist die Startreihenfolge der Skripte durch den Namen gegeben, d.h. S01program startet vor S20programm startet vor S23program. Bis 99 kannst du dort gehen.

Code: Select all

ln -s /von_pfad /nach_pfad
also

Code: Select all

ln -s /etc/rc.d/rcfirewall /etc/rc.d/init.d/rcfirewall
oder

Code: Select all

ln -s /etc/rc.d/rcfirewall /etc/rc.d/init.d/rcX.d/rcfirewall
Ich lasse mich gerne korrigieren, falls ich falsch liege.

edit: Wie ich sehe, war jemand schneller :)

pierro

Re: bash script unter rc.d starten

Posted: 2003-04-30 17:31
by captaincrunch
Skript nach /etc/rc.d/init.d/rcX.d/ kopieren oder mit "ln" verlinken.
Mir ist gerade noch einiges dazu aufgefallen ... sollte nicht einfach was tippern, wenn ich gerade drei andere Sachen mache ... :oops:

Ein einfacher Link nach /etc/rc3.d (z.B.) reicht nicht, da der Link ein bestimmtes Format haben muss. Einfach kopieren ist noch schlechter.

Die Links auf die Startscripte müssen am Anfang ein großes "S", gefolgt von einer zweistelligen Zahlenkombination haben.
Doku findest du hier : http://www.debian.org/doc/debian-policy/ch-opersys.html (ist der Punkt "10.3 System run levels and init.d scripts"). Da wird alles ziemlich gut erklärt.

Re: bash script unter rc.d starten

Posted: 2003-04-30 17:57
by pierro
Danke, Crunch. Für /etc/rcX.d gelten diese Besonderheiten.
Kopieren oder Verlinken reicht für /etc/init.d dagegen völlig aus.

Sollt man der Vollständigkeit halber erwähnen.

Es wird aber explizit in jedem Unix/Linux-Buch empfohlen, für das Runlevel-Einstellen sysvinit oder file-rc zu verwenden. Für KDE gibt es dazu ksysvinit.

Re: bash script unter rc.d starten

Posted: 2003-04-30 18:08
by captaincrunch
/etc/rc.d/init.d/rcX.d/
ist nur leider nicht gerade FHS-konform ... :wink:

Re: bash script unter rc.d starten

Posted: 2003-04-30 18:09
by pierro
Tja... das beruht darauf, daß das Referenzsystem hier ne simple SuSI ist ... /etc/rcX.d linkt bei mir eben auf /etc/rc.d/init.d/rcX.d/.

Re: bash script unter rc.d starten

Posted: 2003-04-30 18:40
by koyote
Vielen Dank für die schnelle und ausführliche Hilfe!!

Die Lösung mit ./rcfirewall hat schon mal geklappt!!! :wink: jetzt werde ich nur noch den "Autostart" (so ganz habe ich mich von Windows wohl noch nicht verabschiedet :lol: :lol: ) aktivieren.

Danke nochmal!!