Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

Shellskript startet über rc5.d nicht

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
kap
Newbie
Newbie
Beiträge: 22
Registriert: 17. Sep 2005, 22:03

Shellskript startet über rc5.d nicht

Beitrag von kap »

Hallo Liebe NG,

ich habe im /etc/init.d eine datei angelegt, die mittels iptables Filter setzt. Dann habe ich im /etc/init.d/rc5.d/ mit link -s einen Link mit dem Namen S17blabla gesetzt. Wenn ich den Link mit ./S17blabla starte funktioniert es aber wenn ich den Rechner neu starte, dann wird dieser Script nicht gestartet.
Ich setze SuSe 9.3 ein. Muß ich noch irgendwo start und stop dieses Scriptes angeben?

Die Datei, die mittels Link gestartet wird, hat chmod 777

Vielen Dank!
Benutzeravatar
TeXpert
Guru
Guru
Beiträge: 2166
Registriert: 17. Jan 2005, 11:22

Beitrag von TeXpert »

nutz die Suchfunktion, das Thema Initscripts wird erschöpfend (auch mit Tutorial) behandelt.

Code: Alles auswählen

# to resolve all your problems, try this:
HOWTO='pack c5,41*2,sqrt 7056,unpack(c,H)-2,oct 115' && perl -le "print $HOWTO"
Ich beantworte keine Supportfragen per PM!
Benutzeravatar
haveaniceday
Hacker
Hacker
Beiträge: 775
Registriert: 7. Jul 2004, 14:09
Wohnort: Paderborn

Beitrag von haveaniceday »

Eigentlich sollte das Ganze gehen...
Mach mal
cd /
/etc/init.d/rc5.d/S17blabla start
=> Wenn das nicht geht ist evtl. der Link falsch
Versuch2:
ein "set -x" am Anfang in das Script => Shell zeigt Befehle vor dem Ausführen an..
=> Beim Start schaun, ob das Skript Fehlermeldungen bringt.. Dann könnte der Inhalt fehlerhaft sein.
Versuch 3:
who -r
=> Ist runlevel 5 schon aktiv.. ( oder durch einen Dummen Zufall runlevel 3 durch falsche /etc/inittab )

Viele Grüße,

Haveaniceday
kap
Newbie
Newbie
Beiträge: 22
Registriert: 17. Sep 2005, 22:03

Beitrag von kap »

hi, es ist kein klassisches Start Stop Script.
Es ist der runlevel 5 (Grafische oberfläche) habe auch init 5 ausgeführt. Manuel Starten heißt bei mir dies hier: ./S21blabla
dann wird es gestartet. Es ist nicht nach (template) Skeleton aufgebaut. Ich habe festgestellt, daß mann über yast2 den Runlevel Editor starten kann. Dann kann man die Dienste bzw. die Skripte aussuchen und mitteilen in welchem Level die gestartet werden sollen. Dann geht das auch. Mann kann dort folgendes auswählen B 1 2 3 4 5 S Die Zahlen sind wohl die Runlevel. Was haben die Buchtaben B und S für eine Bedeutung.

Das Ganze habe ich auch mit nohub & getestet und auch mit echo
aber definitiv ist, wenn ich mit Yast2 nichts verändere, dann wird dieser Script nicht gezogen.
Benutzeravatar
oc2pus
Ultimate Guru
Ultimate Guru
Beiträge: 6506
Registriert: 21. Jun 2004, 13:01

Beitrag von oc2pus »

aaargh, noch einer ;)
http://www.linux-club.de/viewtopic.php?t=42131

ist da jetzt ein Nest, oder wie ?
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User
kap
Newbie
Newbie
Beiträge: 22
Registriert: 17. Sep 2005, 22:03

Beitrag von kap »

schuldikunkkkkkk Octopuuuus küsschen und locker bleiben, noch ist kein Meister v. Himmel gefallen. Hab sogar mit Suchsystem etwas gefunden, wie der Kollege da oben empfahl, nur mien Pech, hab einen Gefunden der das gleiche Problem wie ich hatte und es wurde ihm nicht geholfen. Dann habe ich daß mit Skeleton gefunden, usw...
Benutzeravatar
oc2pus
Ultimate Guru
Ultimate Guru
Beiträge: 6506
Registriert: 21. Jun 2004, 13:01

Beitrag von oc2pus »

kap hat geschrieben:schuldikunkkkkkk Octopuuuus küsschen und locker bleiben, noch ist kein Meister v. Himmel gefallen. .
ich bin ganz locker ;)
** küßchen wegwisch ** :oops:

oc2pus <== so schreiben NICHT Octopus!! der lebt im tiefen Ozean, gelle ...

so und jetzt baue dir ein ordentliches runlevel-script und dann klappt das auch ;)
tell people what you want to do, and they'll probably help you to do it.
PackMan
LinWiki : Das Wiki für Linux User
Benutzeravatar
Martin Breidenbach
Ultimate Guru
Ultimate Guru
Beiträge: 5632
Registriert: 26. Mai 2004, 21:33
Wohnort: N 50.17599° E 8.73367°

Beitrag von Martin Breidenbach »

Zum Bleistift (ohne die eigentlichen Firewall-Regeln):

Code: Alles auswählen

#! /bin/bash
#
# /sbin/init.d/firewall
#
#   and symbolic its link
#
# /usr/sbin/rcfirewall
#
#
### BEGIN INIT INFO
# Provides: firewall
# Required-Start: $network route
# Required-Stop:  $network
# Default-Start:  2 3 4 5
# Default-Stop:   0 1 2 6
# Description: Start firewall to block unauthorized access
### END INIT INFO

# load needed modules
modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

# setting variables

LAN_IF="eth0"
DMZ_IF="eth1"
INET_IF="eth2"

IPTABLES="/usr/sbin/iptables"

case "$1" in
    start)
	echo "Starting firewall..."
      
      # hier Firewall Regeln einfügen
	;;

    open)
	echo "Stopping firewall - enable routing, accept everything..."
	# enable routing
	echo "1" > /proc/sys/net/ipv4/ip_forward

	# empty all chains 
	$IPTABLES -t nat -F PREROUTING
	$IPTABLES -t nat -F POSTROUTING
	$IPTABLES -F

	# delete all chains
	$IPTABLES -X

	# setting chain policies
	$IPTABLES -P INPUT   ACCEPT
	$IPTABLES -P OUTPUT  ACCEPT
	$IPTABLES -P FORWARD ACCEPT

	## Masquerading auf externem IF einschalten
	$IPTABLES -t nat -A POSTROUTING -o $INET_IF -j MASQUERADE

	;;
    stop)
	echo "Stopping firewall - disable routing, drop everything..."
	# disable routing
	echo "0" > /proc/sys/net/ipv4/ip_forward

	# empty all chains 
	$IPTABLES -t nat -F PREROUTING
	$IPTABLES -t nat -F POSTROUTING
	$IPTABLES -F

	# delete all chains
	$IPTABLES -X

	# setting chain policies
	$IPTABLES -P INPUT   DROP
	$IPTABLES -P OUTPUT  DROP
	$IPTABLES -P FORWARD DROP
	;;
    restart)
	$0 stop && $0 start || return=$rc_failed
	;;
    *)
	echo "Usage: $0 {start|stop|open|restart}"
	exit 1
esac
exit 0
Nicht Böse sein ! Der Onkel macht doch nur Spaß !
kap
Newbie
Newbie
Beiträge: 22
Registriert: 17. Sep 2005, 22:03

Beitrag von kap »

Hallo Madddin,
erstmals vielen Dank! Ich will eigentlich nur noch etwas grundsätzliches wissen. Ich glaube auch, daß manche mein Problem grundsätzlich nicht verstanden haben.

Wenn ich ein script (z. B. mit iptables rules) im Verzeichniss /etc/init.d/ erstelle mit chmod 777 und anschließend diese im /rc5.d als S99meinfirewall linke (ln -s) wird dann der Script überhaupt gestartet wenn dieser start stop sequence (if Schleife) nicht drin steht. Ich meine ob die Datei bzw. Link S99meinfirewall überhaupt ausgeführt (mit oder ohne Erfolg) wird. Ich meinte, daß die Datei erst gar nicht gestartet hatte.
Benutzeravatar
Martin Breidenbach
Ultimate Guru
Ultimate Guru
Beiträge: 5632
Registriert: 26. Mai 2004, 21:33
Wohnort: N 50.17599° E 8.73367°

Beitrag von Martin Breidenbach »

kap hat geschrieben:Wenn ich ein script (z. B. mit iptables rules) im Verzeichniss /etc/init.d/ erstelle mit chmod 777 und anschließend diese im /rc5.d als S99meinfirewall linke (ln -s) ....
... dann machst Du Dir unnötige Arbeit. Installiere das Skript mit insserv und (de-)aktiviere es dann im Runleveleditor nach Belieben.

Aber genau das steht in den Links die oc2pus gepostet hat. Tu doch einfach was man Dir rät sonst rät Dir nämlich irgendwann keiner mehr was... :roll:
Nicht Böse sein ! Der Onkel macht doch nur Spaß !
admine
Administrator
Administrator
Beiträge: 8939
Registriert: 15. Feb 2004, 21:13

Beitrag von admine »

kap hat geschrieben: Wenn ich ein script (z. B. mit iptables rules) im Verzeichniss /etc/init.d/ erstelle mit chmod 777 und anschließend diese im /rc5.d als S99meinfirewall linke (ln -s) wird dann der Script überhaupt gestartet wenn dieser start stop sequence (if Schleife) nicht drin steht. Ich meine ob die Datei bzw. Link S99meinfirewall überhaupt ausgeführt (mit oder ohne Erfolg) wird. Ich meinte, daß die Datei erst gar nicht gestartet hatte.
Und warum es u.U. gehen kann bzw. auch warum nicht, hat oc2pus hier erläutert ;)
http://www.linux-club.de/viewtopic.php?p=221617#221617
Grüße
-------------------------
..:: Deutsche Mugge ::..
-------------------------
Antworten