Назад | Перейти на главную страницу

Изящно выйдите из системы всех подключенных пользователей ssh ​​при перезагрузке

Когда я перезагружаю свой Linux-сервер (BusyBox Linux), все текущие клиентские соединения ssh переходят в состояние зависания до тех пор, пока не истечет тайм-аут на стороне клиента. Нет сообщения, отправляемого клиенту ssh, чтобы выдать сообщение об ошибке «Отключить». Это в основном заставляет ssh-клиент выглядеть как будто что-то заморожено.

Я использую systemd с этой конфигурацией службы для sshd в версии OpenSSH_5.8p2

[Unit]
Description=SSH Per-Connection Server
After=syslog.target

[Service]
ExecStart=/usr/sbin/sshd -i
SuccessExitStatus=0 255
StandardInput=socket

Есть ли способ настроить плавное завершение работы sshd?

Сеансы sshd на моем (rhel) сервере могут быть идентифицированы по:

~# ps -ef |grep sshd:
root     12120     1  0 10:18 ?        00:00:00 sshd: sysope [priv]
sysope   12132 12120  0 10:18 ?        00:00:00 sshd: sysope@pts/2

уничтожение этих процессов немедленно закроет соединения. Поэтому адаптируйте свой служебный файл sshd для systemd следующим образом:

[Unit]
Description=SSH Per-Connection Server
After=syslog.target

[Service]
ExecStart=/usr/sbin/sshd -i
ExecStop=/usr/sbin/killall -9 sshd
SuccessExitStatus=0 255
StandardInput=socket