Я заметил что когда я проблема a reboot
команда, мое соединение SSH сразу закрывается на CentOS 7. Это не означает, что сервер перезагрузил, поскольку я могу все еще проверить с помощью ping-запросов его.
Кажется, что systemd уничтожает sshd слишком рано. Иногда сервис застрянет, закрываясь или просто будет медленным, и я не могу войти в систему больше для проверки что не так даже при том, что сервер возрос.
Существует ли способ сказать systemd только уничтожать sshd после того, как весь другой сервис снизится?
Это немного похоже на взлом, но как насчет добавления чего-то вроде:
ExecStopPre=sleep 60
в раздел «[Служба]» / usr / lib / systemd / system / sshd .service
? Это не гарантирует порядок выключений, но если вы можете выдержать более длительное время выключения, это может позволить вам поддерживать свою оболочку в активном состоянии достаточно долго, чтобы убедиться, что все остальное завершено нормально, или сделать несколько быстрых поисков. Не уверен, что это полезно в общем случае, поскольку, вероятно, слишком поздно прерывать проблемное завершение работы на этом этапе в любом случае, но это может быть полезно в ситуации, когда у вас есть повторяющаяся проблема во время завершения работы, которую вы пытаетесь отладить.
Я не уверен, что вам здесь нужно, но первое, о чем можно подумать, - это переназначить процесс.
Итак, в вашем случае вы можете переназначить родительский процесс sshd:
renice PRIO_MAX -p pid-of-sshd
Даже если бы вы могли убедиться, что SSH будет последней службой, которая будет отключена, это было бы бессмысленно, потому что вы потеряете соединение, как только сетевые службы будут остановлены.
Linux-машина при загрузке запускаются все службы в заранее определенном порядке: сначала наиболее важные службы, системный журнал, брандмауэр, затем сеть и, наконец, приложения, требующие доступа к сети (веб-сервер, SSH-сервер и т. д.). При выключении эти службы останавливаются в обратном порядке. Таким образом, вы потеряете соединение SSH почти сразу.
Тот факт, что SSH уже отключен, пока вы все еще можете проверить связь с удаленной машиной, является нормальным.