eigene skripte in /etc/init.d/rc5.d arbeiten nicht

S

sirjayjay

Mitglied
Habe ein Shellskript, welches normalerweise richtig arbeitet, nach /etc/init.d kopiert und nach rc5.d verknüpft (und S50 im namen vorangestellt), aber dieses skript arbeitet nicht. hab ich was übersehen??? (im script wird eth0 abgeschaltet, eine neuer ethernet adresse drüber geschrieben und dann wieder aktiviert)
 
Wenn ich die gleichen Befehle in ein bestehendes Skript (zb: das firewall setup skript) am Ende einfüge, werden die Befehle ausgeführt. Es kann also nicht an den Rechten von ifconfig oder am Path liegen.
 
hab gerade festgestellt dass mein Testskript ("whoami > Dateipfad") auch nicht aufgerufen wird. was mache ich falsch?
 
was mache ich falsch?

Ziemlich viel. Gewöhne dir einfach an so viele relevante Infos wie möglich zu posten.

Wir können nicht hellsehen, also poste halt mal das script.

Und die Ausgabe des Befehls "runlevel".
 
Zuletzt bearbeitet:
es geht mehr oder weniger darum dass jedes skript, das sonst funktioniert (im terminal, kde klick etc.) im Runlevel ordner nicht ausgeführt wird obwohl es ausführrechte besitzt. die gleichen befehle in ein bestehendes Skript geschrieben, funktionieren.

default runlevel ist 5
/etc/init.d/rc5.d/S22Test ein SymLink (lrwxrwxrwx) auf
/etc/init.d/TEST.sh - Rechte -rwxr-xr-x
Inhalt: whoami > /home/sirjayjay/test.txt

funkt nicht
wenn ich aber den Symlink direkt aufrufe dann funktioniert es.
dann lösche ich die ausgabedatei und starte neu.
in wirklichkeit habe ich noch andere befehle die ich beim start des systems mit einfachen skripten starten will (und das unter root da es system weit gelten muss, sonst hätte ich es auch unter $HOME/.kde/Autostart hinein geben können). Aber das Skript mit whoami ist ein ideales einfaches Testskript.
 
Ein init-Skript muss mindestens den Parameter 'start' verarbeiten können, denn es wird vom init-System mit 'skriptname start' aufgerufen. Ausserdem reicht ein einfaches 'whoami' im Skript nicht. 1. Es muss noch ein Interpreter angegeben werden, 2. wie gesagt muss es den Parameter 'start' verstehen, 3. Musst du erstmal Pfade setzen, denn beim init-Prozess ist die PATH-Variable nicht belegt. Du solltest dich also einfach mal mit dem init-System auseinandersetzen, bevor du da irgendwelche Skripte reinpackst. Im übrigen kann ich dir jetzt schon sagen, dass ein whoami im init grundsätzlich 'root' zurückgibt.

PS: Und gewöhne dir dieses hintereinander posten ab, wenn noch keine Antwort kam. Siehe dazu auch die Boardregeln. Wir haben hier eine Editierfunktion.
 
das whoami unter init ein "root" liefert ist mir klar, sollte ja auch nur als kleine testdatei herhalten. hätte auch ein "echo 'blabla' > ausgabedatei" schreiben können. wäre das selbe, es soll nur ein tool aufgerufen werden dass etwas im system hinterlegt oder ändert, wenn das mal funktioniert kann ich auch die anderen befehle hineinschreiben.
habe mittlerweile wo anderes einen tip bzgl. boot.local bekommen. hab das dort hineingeschrieben und es funktioniert.
 
Die boot.local zu bearbeiten sollte nur benutzt werden, wenn ein Befehl nur beim Boot ausgeführt werden soll. Sobald du einen Daemon oder einen anderen Hintergrund-Prozess startest, solltest du ein init-Skript verwenden, was ja auch kein Problem sein sollte.
Code:
#!/bin/bash

echo "Starting foobar service"

PATH=/bin:/usr/bin:/usr/local/bin # evtl. notwendige Pfade her einfügen

case "$1" in
start)
      <Hier kommen die Befehle fuer den Start rein>
      ;;
stop)
      <Hier kommen die Befehle fuer das Anhalten des Services rein>
      ;;
restart)
      <Hier kommen die Befehle fuer den Restart des Services rein>
      ;;
*)
      <Hier sollte eine kurze Hilfe ausgegeben werden, falls ein falscher oder garkein Parameter genutzt wurde>
      ;;
esac

exit 0
 

Ähnliche Themen

Server's Power

OpenSuSE11 , XEN, virtuelle Maschine verliert NetzwerkConfig

Anleitung: Howto: OpenSUSE 10, XDMCP und Cygwin als Thin-Client

Server-Monitoring mit RRDTool

[openSuse10.2] SATA mal wieder...

Zurück
Oben