mikrocontroller.net

Forum: PC Hard- und Software Linux Programmstart, zum Nicht-starten aus /etc/init.d entfernen?


Autor: debbie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bis man Linux einigermassen verstanden hat, vergehen Jahre und dann 
vergisst man wieder alles.. Naja.

Ich möchte auf einer NSLU2 mit Debian 5.03 (Lenny) sshd gegen dropbear 
tauschen. sshd läuft, dropbear wird noch nicht gestartet (weil sshd 
erkannt wurde).

Da ich das Ding über ssh steuere, muss wohl sshd aus den startup 
skripten irgendwie raus, dropbear rein, dann neustart.

Wie geht das mit dem Tausch im einzelnen?

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
NICHT aus /etc/init.d entfernen!

Die Skripte in /etc/init.d können (oder müssen) mit einem Parameter
aufgerufen werden; von sich aus tun sie nichts und stören folglich
auch nicht.

Vielmehr geht der init-Prozess beim Wechsel des run levels in das
Verzeichnis /etc/rc<x>.d (wobei <x> dem alten run level entspricht)
und führt darin in alphabetischer Reihenfolge alles aus, was mit K
beginnt mit dem Parameter "stop" (zum Beenden), anschließend geht
init in das Verzeichnis /etc/rc<x>.d (wobei <x> jetzt dem neuen
run level entspricht) und führt darin alles aus, was mit S beginnt
mit dem Parameter "start".

(bei anderen Linuxen als Debian können /etc/init.d bzw. /etc/rc...
auch etwas anders liegen, aber das Prinzip wird überall gleich sein.)

Der Trick zur einfacheren Verwaltung ist nun der, daß die Skripte
in /etc/rc...d gar keine sind, sondern nur symbolische Links auf die
tatsächlichen Skripte in /etc/init.d.
Um einen weiteren Dienst zu aktivieren, schreibt man einfach in
das entsprechende /etc/rc<x>.d einen symbolischen Link mit dem
Namen S_irgendwas, der auf die passende Datei in /etc/init.d
verweist, und zum Deaktivieren löscht man den Link aus
/etc/rc<x>.d wieder.

Die Zahl hinter K... bzw. S.. dient nur dazu, die Reihenfolge
der Skripte untereinander zu steuern (erst Netzwerk, dann sshd
und so weiter).

Früher hatte ich SuSE-Rechner, da gab es meines Wissens ein
Kommando um so einen symbolischen Link anzulegen, ob es das
unter Debian auch gibt, weiß ich nicht. Ich mache es immer
von Hand, indem ich einfach den Link setze.

Falls man einen Dienst komplett neu einrichten will, für den
es in /etc/init.d noch nichts gibt, dann legt man dort ein
passendes Skript ab, das mit dem Argument "start" halt das
jeweilge Programm anwirft, mit "stop" wieder beendet und
mit "reload" anhält und neu startet, und macht dann wie
beschrieben die Links in den /etc/rc<x>.d, je nachdem, in
welchen run leveln das Ding laufen soll.

Welcher der normale run level ist, der nach dem Hochfahren
angesteuert wird, wenn nichts anderes beim boot loader
angegeben wird, steht übrigens in der /etc/inittab in der
Zeile, die mit initdefault markiert ist, z.B.:
id:2:initdefault:
führt bei mir zum default-run level 2.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber was ich nicht verstehe: wenn man sshd deinstalliert und
dropbear dafür installiert, sollte das die Paketverwaltung
automatisch machen, oder nicht? Die stopppt und startet doch
Dienste normalerweise passend, je nachdem was installiert wurde?

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Links in den rcN.d Directories werden mit update-rc.d verwaltet.

Normalerweise werden die automatisch über die debian Paketverwaltung 
eingerichtet, d.h. bei zwei Alternativen fliegt die andere raus.

Es gibt aber Pakete, die trotz vorhandener Links von Haus aus 
deaktiviert sind, weil man sie erst in /etc/defaults/paketname 
konfigurieren muss.

Autor: debbie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: debbie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oh, danke für die Antworten. Habe ich irgendwie übersehen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.