Были другие разработчики, вошедшие в систему как root, которых я хотел удалить.
Итак, я выпустил
pkill -KILL -u root
Тогда я понял, что я, вероятно, убил все виды корневых процессов.
Я повредил свою систему? Я не могу достичь этого через SSH сейчас.
ОБНОВЛЕНИЕ: веб-сервер все еще работает. Но я не могу подключиться по SSH сейчас. Я понятия не имею, что я сделал.
Ответы:
Быстрый ответ: вы убили sshd (и лорд знает, что еще) и не сможет войти в систему с помощью SSH. Если у вас нет другого способа получить доступ к системе (например, удаленная консоль, IPMI и т. Д.), Вам потребуется перезагрузить систему, чтобы восстановить службу SSH и другие службы.
Надеюсь, у вас есть физический доступ к коробке, и в этом случае вам, вероятно, просто нужно нажать кнопку питания. Поймите, что вы убили много процессов и будьте готовы к некоторой коррупции. Linux предназначен для восстановления после сбоя системы, и вы по сути спровоцировали «ручной» сбой. Большинство вещей должно восстановиться после перезагрузки. У вас могут быть всевозможные интересные сообщения об ошибках в лог-файлах.
Длинный ответ:
Это отличный мысленный эксперимент и хороший вопрос для собеседования. «Что произойдет, если вы сделали X ...» Это забавная вещь, которую можно попробовать на собственной частной виртуальной машине, но никогда не следует делать это на реальной коробке. Все совершают ошибки. Помните и учитесь на своей ошибке. Делать ошибки - лучший способ учиться. Ошибки на производстве - это болезненный урок, который иногда случается в вашей карьере.
Эта команда отправит 'SIGKILL' (например,
kill -9
KILL - псевдоним для SIGKILL) всем процессам, принадлежащим root. Это очень плохо для системы.kill -9
следует избегать, кроме как в крайнем случае.Ваша команда агрессивно уничтожила все процессы, принадлежащие пользователю root, процессы были немедленно уничтожены, и у них не было возможности их очистить. Чтобы понять, что вы убили, войдите в работоспособную коробку Linux и перечислите процессы, принадлежащие пользователю root, с помощью команды, подобной одной из них. Обычно вам не нужно быть пользователем root для запуска этих команд:
Возможно, вы убили Init (PID # 1), который порождает новые процессы. Ваша система может быть не в состоянии создавать новые процессы. Таким образом, он может продолжать функционировать на данный момент, но он болен и нуждается в ремонте как можно скорее. Со временем система будет становиться все более и более больной. Чем дольше вы будете ждать, тем хуже будет.
Я предполагаю, что вы используете Apache. Похоже, что дочерние процессы веб-сервера все еще работают, потому что они не принадлежат пользователю root. Однако родительский процесс веб-сервера обычно принадлежит пользователю root, и вы его убили. В результате новые дочерние процессы не будут появляться. Это будет хорошо какое-то время, потому что у вас, вероятно, достаточно дочерних процессов для обслуживания запросов, и, как правило, эти дочерние процессы сохраняются до тех пор, пока они не будут уничтожены или не завершатся сбоем. Опять же, самое быстрое решение - перезагрузить компьютер.
источник
Скорее всего, вам придется перезапустить вашу систему, поскольку вы убили почти все критически важные службы в ней. То, как вы это сделаете, зависит от того, какие инструменты у вас есть или какой транспорт нужно доставить в центр обработки данных.
источник
Система работает, потому что ядро работает. Вы не можете получить доступ к sshd, потому что вы убили демона. Возможно, init был также прерван, то есть вы не можете создавать новые процессы. Таким образом, новые соединения Apache могут не устанавливаться (применяются параметры конфигурации;)).
Вы не можете отправить сигнал потокам ядра, поэтому система работает, но корневые службы были прерваны, и для нормального воскрешения вы должны перезагрузить его.
источник