У меня есть удаленный Linux-сервер с платным kvm и очень медленная «перезагрузка по запросу». Теперь, когда я перезагружаю сервер с помощью «sudo reboot», ssh отключает меня в течение 3-5 секунд, но затем сервер иногда продолжает работать, я думаю, ожидая завершения работы какого-либо сценария rc.d. Сеть все еще настроена, поэтому я могу даже пинговать сервер, но соединения ssh не могут быть установлены, поэтому, по-видимому, sshd не работает. Я даже не могу копаться внутри, чтобы обнаружить, что происходит во время выключения. Итак, вопрос: как предотвратить остановку sshd во время выключения системы? Я хочу, чтобы sshd работал до полного отключения системы.
Вы этого не сделаете.
Ваша операционная система должна остановить все процессы перед завершением работы. Это включает в себя отключение ваших SSH-соединений.
«Живая» сеть - это артефакт того, что ядро еще не было остановлено / перезапущено - на ваш эхо-запрос отвечает стек IP / ICMP. Userland может полностью исчезнуть, а ядро продолжит отвечать на пинг.
Вы жестяная банка переупорядочить сценарии выключения так sshd
убивается позже в процессе (посмотрите документацию для вашего дистрибутива), однако это просто заставит демон SSH работать дольше - он не сохранит вашу сессию, которая была убита как независимый процесс (вот почему вы можете остановить / запустите sshd, пока вы все еще вошли в систему - активные соединения больше не являются «частью демона»).
Если ваша система ведет себя нормально, она будет запрещать вход в систему после начала процесса завершения работы, и вы все равно не сможете войти в систему после завершения сеанса.