bash script unter rc.d starten

Bash, Shell, PHP, Python, Perl, CGI
koyote
Posts: 30
Joined: 2003-03-17 13:15

bash script unter rc.d starten

Post 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!!
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: bash script unter rc.d starten

Post 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
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
pierro
Posts: 14
Joined: 2003-04-30 12:50

Re: bash script unter rc.d starten

Post 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
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: bash script unter rc.d starten

Post 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.
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
pierro
Posts: 14
Joined: 2003-04-30 12:50

Re: bash script unter rc.d starten

Post 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.
captaincrunch
Userprojekt
Userprojekt
Posts: 7066
Joined: 2002-10-09 14:30
Location: Dorsten

Re: bash script unter rc.d starten

Post by captaincrunch »

/etc/rc.d/init.d/rcX.d/
ist nur leider nicht gerade FHS-konform ... :wink:
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
pierro
Posts: 14
Joined: 2003-04-30 12:50

Re: bash script unter rc.d starten

Post 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/.
koyote
Posts: 30
Joined: 2003-03-17 13:15

Re: bash script unter rc.d starten

Post 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!!