Es waren andere Entwickler als root angemeldet, die ich rausschmeißen wollte.
Also habe ich ausgestellt
pkill -KILL -u root
Dann wurde mir klar, dass ich wahrscheinlich alle Arten von Wurzelprozessen getötet habe.
Habe ich mein System beschädigt? Ich kann es jetzt nicht über SSH erreichen.
UPDATE: Der Webserver läuft noch. Aber ich kann jetzt keine Verbindung über SSH herstellen. Ich habe keine Ahnung, was ich getan habe.
Antworten:
Eine schnelle Antwort ist, dass Sie sshd getötet haben (und Lord weiß, was noch) und sich nicht mit SSH wieder beim System anmelden können. Sofern Sie keine andere Methode haben, um Zugriff auf das System zu erhalten (z. B. Remote-Konsole, IPMI usw.), müssen Sie das System neu starten, um den SSH-Dienst und andere Dienste wiederherzustellen.
Hoffentlich haben Sie physischen Zugriff auf die Box. In diesem Fall müssen Sie wahrscheinlich nur den Netzschalter drücken. Stellen Sie fest, dass Sie viele Prozesse beendet haben, und seien Sie auf Korruption vorbereitet. Linux wurde entwickelt, um sich von einem Systemabsturz zu erholen, und Sie haben im Wesentlichen einen manuellen Absturz ausgelöst. Die meisten Dinge sollten sich nach einem Neustart gut erholen. Möglicherweise haben Sie alle möglichen interessanten Fehlermeldungen in den Protokolldateien.
Lange Antwort:
Dies ist ein großartiges Gedankenexperiment und eine gute Frage zum Vorstellungsgespräch. "Was passiert, wenn Sie X gemacht haben ..." Dies ist eine unterhaltsame Sache, die Sie auf Ihrer eigenen privaten virtuellen Maschine ausprobieren können, sollte aber niemals auf einer realen Box durchgeführt werden. Jeder macht Fehler. Denken Sie daran und lernen Sie aus Ihrem Fehler. Fehler zu machen ist der beste Weg zu lernen. Fehler in der Produktion zu machen ist eine schmerzhafte Lektion, die gelegentlich in Ihrer Karriere vorkommen wird.
Dieser Befehl sendet ein 'SIGKILL' (z
kill -9
. B. KILL ist ein Alias für SIGKILL) an alle Prozesse, deren Eigentümer root ist. Es ist eine sehr schlechte Sache, auf einem System zu tun.kill -9
sollte vermieden werden, außer als letztes Mittel.Ihr Befehl hat alle Prozesse, die Root gehören, aggressiv beendet. Die Prozesse wurden sofort beendet und hatten keine Chance, aufzuräumen. Um einen Eindruck davon zu bekommen, was Sie getötet haben, melden Sie sich bei einer fehlerfreien Linux-Box an und listen Sie die Prozesse auf, deren Eigentümer root ist. Verwenden Sie dazu einen Befehl wie diesen. Sie müssen normalerweise nicht root sein, um diese Befehle auszuführen:
Möglicherweise haben Sie Init (PID # 1) beendet, wodurch neue Prozesse entstehen. Ihr System kann möglicherweise keine neuen Prozesse erstellen. Es kann also vorerst weiter funktionieren, ist aber krank und muss so schnell wie möglich repariert werden. Mit der Zeit wird das System immer kranker. Je länger Sie warten, desto schlimmer wird es.
Ich vermute, dass Sie Apache verwenden. Es scheint, dass die untergeordneten Prozesse des Webservers noch ausgeführt werden, da sie nicht dem Benutzer 'root' gehören. Der übergeordnete Webserver-Prozess gehört jedoch normalerweise root und Sie haben ihn beendet. Infolgedessen werden keine neuen untergeordneten Prozesse erzeugt. Dies ist eine Zeit lang in Ordnung, da Sie wahrscheinlich über genügend untergeordnete Prozesse verfügen, um Anforderungen zu bearbeiten. In der Regel bleiben diese untergeordneten Prozesse bestehen, bis sie beendet werden oder abstürzen. Die schnellste Lösung besteht wiederum darin, den Computer neu zu starten.
quelle
Sie müssen höchstwahrscheinlich Ihr System neu starten, da Sie so gut wie jeden kritischen Dienst auf dem System beendet haben. Wie Sie das tun, hängt davon ab, über welche Tools Sie verfügen oder welchen Transport Sie zum Rechenzentrum benötigen.
quelle
Das System wird ausgeführt, weil der Kernel ausgeführt wird. Sie können nicht auf sshd zugreifen, da Sie den Daemon beendet haben. Wahrscheinlich wurde init auch beendet, was bedeutet, dass Sie keine neuen Prozesse erstellen können. Daher werden möglicherweise keine neuen Apache-Verbindungen hergestellt (Konfigurationsparameter angewendet;)).
Sie können kein Signal an die Kernel-Threads senden. Aus diesem Grund wird das System ausgeführt, aber die Dienste im Root-Besitz wurden beendet. Für eine normale Wiederbelebung sollten Sie es neu starten.
quelle