Frage innerhalb einer Frage (aus dem Debian-Wiki ):
Soll ich sid auf meinem Desktop verwenden?
Wenn Sie denken, dass Sie mit einem kaputten Debian-System umgehen können, sicher. Wissen Sie, was zu tun ist, wenn libpam0g unterbrochen wird und alle Anmeldungen verhindert werden? Wissen Sie, was zu tun ist, wenn grep unterbrochen wird und der Startvorgang für immer hängen bleibt? Diese Dinge sind passiert. Sie werden wieder passieren.
Meine Frage ist, wie ein Fehler dazu führt, grep
dass der Startvorgang für immer hängen bleibt.
grep
istgrep -r pattern . > pattern.grep
. Da die Shell die Ausgabedatei vor dem Aufrufen erstelltgrep
,grep
durchsucht der Befehl die Ausgabedatei, die wächst, bis die Festplatte voll ist. Ich habe keine Ahnung, ob dies mit irgendetwas zusammenhängt, das dazu führen könnte, dass der Startvorgang für immer hängen bleibt.Antworten:
Es ist üblich, dass Boot-Skripte
grep
irgendwann aufgerufen werden. Wenn esgrep
aufgrund eines Fehlers hängt,grep
bleibt das erste dieser Boot-Skripte, die aufgerufen werden, hängen. Wenn eines dieser Skripte fehlerhaft ist undgrep
ohne Angabe eines Dateinamenarguments und ohne Umleitung der Eingabegrep
aufgerufen wird, wartet es normalerweise ewig auf die Konsoleneingabe (das ist nicht so schlimm, wenn Sie sich vor der Konsole befinden und dies können TypCtrl+D
). Wenn ein Skript defekt ist undgrep
eine Pipe oder ein Gerät aufruft, auf dem niemand schreibt ... schade.quelle
Nun, der offensichtliche Weg wäre "grep hängt für immer, also hängt etwas, das grep verwendet, für immer, und etwas im Boot-Prozess macht das".
Der Text ist wahrscheinlich eher illustrativ als wörtliche Beispiele für Probleme, aber es ist nicht unmöglich.
Um wirklich zu verstehen, lesen Sie unter
/etc/init.d/rc
und/etc/init.d/rcS
- das sind die Shell-Skripte, die alle Bits ausführen, die Ihr System aufrufen.quelle