PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Befehle bei Systemstart, in Autostart! Wie?



Dopex2k
28.06.04, 20:35
Wie kann man Befehle automatisch direkt nach dem Start von SuSE Linux 9.1 ausführen?

Es müssten bei mir 2 Befehle ausgeführt werden, da ich sie bis jetzt immer manuell in den Terminal eingeben muss:


ifconfig wlan0 up 192.168.1.3
route add default gw 192.168.1.1

Vorweg: In die boot.local können sie nicht geschrieben werden, dann funzts nicht!

Windoofsklicker
28.06.04, 20:41
hm.. gibt's bei suse eine /etc/rc.local ?
wenn ja, ist die dein freund.

psycho0815
28.06.04, 20:41
da muss es ne config datei irgendwo unter /etc/sysconfig geben.
da kommt das rein.

Dopex2k
28.06.04, 20:44
negativ! Diese Datei gibt es nicht... :(

frankpr
28.06.04, 20:46
Bei SuSE /etc/init.d/boot.local.

MfG

Dopex2k
28.06.04, 20:48
da muss es ne config datei irgendwo unter /etc/sysconfig geben.
da kommt das rein.

hmm... suseconfig, fontsconfig... ?! das letzte wohl eher nicht...
:confused:

Dopex2k
28.06.04, 20:49
Bei SuSE /etc/init.d/boot.local.

MfG

Nein, das geht nicht...
Hab ich aber schon erwähnt! (1. Post)

frankpr
28.06.04, 20:58
[an die Stirn schlag]
Klar, jetzt fällt es mir auch auf, boot.local wird ja vor dem Netzwerkstart ausgeführt.
[/an die Stirn schlag]
Also, einen kleinen Script, der diese Befehle ausführt schreiben, diesen nach /etc/init.d kopieren und die entsprechenden Links für Start und Stop nach /etc/rc.d/rc3.d bzw. /etc/rc.d/rc5.d legen, dabei aufpassen, daß die Nummer beim Startlink (SxxScriptname) höher als beim Netzwerkstartscript ist.
Wenn Du Dir jetzt noch die Syntax der SuSE Startscripte anschaust, kannst Du das richtig machen, so daß das Ganze auch per Runlevel Editor mit der Maus Ein- und Ausgeschaltet werden kann.

MfG

Dopex2k
28.06.04, 21:05
[an die Stirn schlag]
Klar, jetzt fällt es mir auch auf, boot.local wird ja vor dem Netzwerkstart ausgeführt.
[/an die Stirn schlag]
Also, einen kleinen Script, der diese Befehle ausführt schreiben, diesen nach /etc/init.d kopieren und die entsprechenden Links für Start und Stop nach /etc/rc.d/rc3.d bzw. /etc/rc.d/rc5.d legen, dabei aufpassen, daß die Nummer beim Startlink (SxxScriptname) höher als beim Netzwerkstartscript ist.
Wenn Du Dir jetzt noch die Syntax der SuSE Startscripte anschaust, kannst Du das richtig machen, so daß das Ganze auch per Runlevel Editor mit der Maus Ein- und Ausgeschaltet werden kann.

MfG

naja, das hört sich doch schonmal nach einer Lösung an!
Leider hab ich absolut keine Ahnung von scripten! Das ist ein Tick zuviel für mich, um es mal sanft auszudrücken!

Glaubst Du, du könntest mir da behilflich sein? Oder ist das zu aufwendig?
:confused: :(

psycho0815
28.06.04, 21:53
# network script
#!/bin/bash

case $1 in

start)
echo "bringing up interface wlan0"
/sbin/ifconfig wlan0 up 192.168.1.3

echo "setting default root"
route add default gw 192.168.1.1
;;

status)
/sbin/ifconfig wlan0
;;

stop)
echo "stopping interface wlan0"
/sbin/ifconfig wlan0 down

echo "removing default route"
route del default

;;

*)

echo "usage: $0 (start | status | stop)"
exit 1

esac



sollte funzen.
am besten als S90 oder so starten.

Dopex2k
28.06.04, 22:36
danke für die mühe, aber irgendwie hat das auch nicht funktionniert! Aber vielleicht liegt das ja auch an mir (würd mich nicht wundern)

Das hab ich gemacht:

1. eine "shell-skript" Datei Namens "wlan-ip" unter file:/etc/init.d/wlan-ip gespeichert
2. chmod 700 wlan-ip
3. YaST --> Runlevel-Editor
4. Datei Ausgewählt und "5" und "S" verpasst.
5. Runlevel-Editor beendet und neustart!

Zur verdeutlichung nochmal 2 Screens:

carnil
28.06.04, 22:38
Hi

Sehe ich das richtig? Du hast wlan-ip S01 verpasst? Du solltest dem Skript eine möglichst hohe Nummer geben, zumindest sollte sie höher sein, als diejenigen Skripte wo das netzwerk gestartet wird, sonst klappt es nicht. Also mindestens eine nach 05, besser noch höher, damit es ganz sicher keine "Konflikte" gibt ....

MfG carnil

Dopex2k
28.06.04, 22:41
Ich hab mir so eine Mühe gegeben! :(

Aber wie verpasse ich einer datei eine hohe Nummer? Ich weiß nicht wie ich das beeinflussen kann/soll/muss......

psycho0815
28.06.04, 22:43
mach mal aus S01wlan-ip S14wlan-ip.
werden denn beim start auch die module geladen die er braucht?
allerdings kanns auch nen fehler im skript sein, getestet hab ichs nicht.

und mach auf der konsole einfach mal "./wlan-ip start" um zu gucken ob das skript überhaupt funktioniert.

Dopex2k
28.06.04, 22:45
mach mal aus S01wlan-ip S14wlan-ip.
werden denn beim start auch die module geladen die er braucht?
allerdings kanns auch nen fehler im skript sein, getestet hab ichs nicht.

einfach selber umbenennen?! So per hand, ja? ok.....

psycho0815
28.06.04, 22:45
ja das sollte gehen, weiß aber nicht ob yast da durcheinanderkommt...

Dopex2k
28.06.04, 22:55
mach mal aus S01wlan-ip S14wlan-ip.
werden denn beim start auch die module geladen die er braucht?
allerdings kanns auch nen fehler im skript sein, getestet hab ichs nicht.

und mach auf der konsole einfach mal "./wlan-ip start" um zu gucken ob das skript überhaupt funktioniert.

Es geht! Das Script geht! juhuuu!
Na endlich! Langsam aber sicher wird ein Problem nach dem anderem beseitigt! juhuuuu! Danke Danke und nochmal danke!



#!/bin/bash
# wlan-ip

case $1 in

start)
echo "bringing up interface wlan0"
/sbin/ifconfig wlan0 up 192.168.1.3

echo "setting default root"
route add default gw 192.168.1.1
;;

status)
/sbin/ifconfig wlan0
;;

stop)
echo "stopping interface wlan0"
/sbin/ifconfig wlan0 down

echo "removing default route"
route del default

;;

*)

echo "usage: $0 (start | status | stop)"
exit 1

esac


Jetzt wäre nur noch interessant, was die befehle bedeuten... ;)

man muss unter rc5.d noch die Date zu S14 umbenennen, und es geht! sauber! nochmal vielen lieben dank!

psycho0815
28.06.04, 23:08
also


#!/bin/bash
# wlan-ip

case $1 in //fallunterscheidung. $1 ist der erste übergebene parameter

start) // wenn $1 = start
echo "bringing up interface wlan0"
/sbin/ifconfig wlan0 up 192.168.1.3

echo "setting default root"
route add default gw 192.168.1.1
;; //ende eines Blocks

status) // wenn $1 = status
/sbin/ifconfig wlan0
;; // s.o.

stop) // wenn $1 = stop
echo "stopping interface wlan0"
/sbin/ifconfig wlan0 down

echo "removing default route"
route del default

;; // s.o.

*) // alles andere

echo "usage: $0 (start | status | stop)" // $0 ist der Name des Programms
exit 1 // beendet das programm mit rückgabewert 1. daher weiß das OS das es im programm ein fehler gab. hätte man auch weglassen können.

esac // ende der case anweisung


der Rest sollte ja klar sein.

Dopex2k
28.06.04, 23:16
jetzt bin ich schon etwas schlauer, als vorher.

danke!

psycho0815
28.06.04, 23:46
immer wieder gerne :)