„Grep pęka, powodując zawieszenie procesu uruchamiania na zawsze”


10

Pytanie w obrębie pytania (z wiki Debiana ):

Czy powinienem używać sid na pulpicie?

Jeśli uważasz, że poradzisz sobie ze zepsutym systemem Debian, na pewno. Czy wiesz, co zrobić, jeśli libpam0g ulegnie awarii, uniemożliwiając wszystkie logowanie? Czy wiesz, co zrobić, jeśli grep się zepsuje, powodując zawieszenie procesu uruchamiania na zawsze? Te rzeczy się wydarzyły. Oni się powtórzą.

Moje pytanie brzmi: w jaki sposób zepsuty greppowoduje, że proces uruchamiania zawiesza się na zawsze?


4
Jednym błędem, który popełniłem, grepjest grep -r pattern . > pattern.grep. Ponieważ powłoka tworzy plik wyjściowy przed wywołaniem grep, greppolecenie przeszukuje plik wyjściowy, który rośnie aż do zapełnienia dysku. Nie mam pojęcia, czy ma to związek z czymkolwiek, co mogłoby spowodować zawieszenie procesu uruchamiania na zawsze.
Keith Thompson

Odpowiedzi:


8

Skrypty rozruchowe często wywołują grepw pewnym momencie. Jeśli grepzawiesza się z powodu błędu, pierwszy z tych skryptów rozruchowych, który wywołuje grep, zawiesi się. Lub, częściej, jeśli jeden z tych skryptów jest uszkodzony i wywołania grepbez podania argumentu nazwy pliku i bez przekierowania danych wejściowych, grepbędą siedzieć wiecznie i czekać na dane wejściowe konsoli (nie jest tak źle, jeśli jesteś przed konsolą i możesz typ Ctrl+D). Jeśli skrypt jest uszkodzony i wywołuje greppotok lub urządzenie, na którym nikt nie pisze… szkoda.


5

Cóż, oczywistym sposobem byłoby „grep zawiesza się na zawsze, więc coś, co używa grep zawiesza się na zawsze, i coś w procesie rozruchu to robi”.

Tekst prawdopodobnie będzie raczej ilustracyjny niż dosłowne przykłady problemów, ale nie jest to niemożliwe.

Aby naprawdę zrozumieć, zacznij czytać od /etc/init.d/rci /etc/init.d/rcS- są to skrypty powłoki, które uruchamiają wszystkie bity, które wywołują twój system.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.