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.
pkill -KILL -u Wurzel
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:
$ pgrep -u root -l
$ ps aux | grep root
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.
UPDATE: Der Webserver läuft noch. Aber ich kann jetzt keine Verbindung über SSH herstellen. Ich habe keine Ahnung, was ich getan habe.
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.