Szybką odpowiedzią jest to, że zabiłeś sshd (a lord wie co jeszcze) i nie będziesz mógł zalogować się ponownie do systemu za pomocą SSH. O ile nie masz innej metody uzyskania dostępu do systemu (takiej jak zdalna konsola, IPMI itp.), Będziesz musiał ponownie uruchomić system, który przywróci usługę SSH i inne usługi.
Mamy nadzieję, że masz fizyczny dostęp do skrzynki, w którym to przypadku prawdopodobnie wystarczy nacisnąć przycisk zasilania. Uświadom sobie, że zabiłeś wiele procesów i bądź przygotowany na zepsucie. Linux został zaprojektowany do odzyskiwania po awarii systemu i spowodowałeś awarię „manualną”. Większość rzeczy powinna wrócić do normy po ponownym uruchomieniu. W plikach dziennika mogą znajdować się różnego rodzaju interesujące komunikaty o błędach.
Długa odpowiedź:
To świetny eksperyment myślowy i dobre pytanie do rozmowy kwalifikacyjnej. „Co się stanie, jeśli zrobiłeś X ...” To fajna rzecz, aby wypróbować na swojej prywatnej maszynie wirtualnej, ale nigdy nie powinno się jej robić na prawdziwym pudełku. Wszyscy popełniają błędy. Pamiętaj i ucz się na swoim błędzie. Popełnianie błędów to najlepszy sposób na naukę. Popełnianie błędów przy produkcji to bolesna lekcja, która zdarza się czasami w twojej karierze.
pkill -KILL -u root
To polecenie wyśle „SIGKILL” (np kill -9
. KILL jest aliasem dla SIGKILL) do wszystkich procesów należących do roota. Jest to bardzo zła rzecz do zrobienia w systemie. kill -9
należy unikać, chyba że w ostateczności.
Twoje polecenie agresywnie zabiło cały proces należący do roota, procesy zostały zabite natychmiast i nie dano szansy na oczyszczenie. Aby dowiedzieć się, co zabiłeś, zaloguj się do zdrowego systemu Linux i wypisz procesy należące do roota, używając polecenia takiego jak jeden z nich. Zwykle nie trzeba być rootem, aby uruchomić następujące polecenia:
$ pgrep -u root -l
$ ps aux | grep root
Być może zabiłeś Init (PID # 1), który odradza nowe procesy. Twój system może nie być w stanie utworzyć nowych procesów. Może więc nadal działać, ale jest chory i należy go naprawić jak najszybciej. Z biegiem czasu system będzie coraz bardziej chory. Im dłużej będziesz czekać, tym gorzej będzie.
AKTUALIZACJA: Serwer WWW nadal działa. Ale nie mogę teraz połączyć się przez SSH. Nie mam pojęcia co zrobiłem.
Zgaduję, że używasz Apache. Wygląda na to, że procesy potomne serwera WWW nadal działają, ponieważ nie są własnością użytkownika „root”. Jednak proces nadrzędnego serwera WWW jest zwykle własnością root, a ty go zabiłeś. W rezultacie nowe procesy potomne nie pojawią się. Przez jakiś czas będzie to w porządku, ponieważ prawdopodobnie masz wystarczającą liczbę procesów potomnych do obsługi żądań i zazwyczaj te procesy potomne będą się utrzymywać, dopóki nie zostaną zabite lub ulegną awarii. Ponownie najszybszym rozwiązaniem jest ponowne uruchomienie komputera.