Что означает статус "активен (вышел)" для службы SystemD?

Я не думаю, что это поддерживает сеанс, если ваш клиент потерял соединение. Вероятно, это те параметры на стороне сервера:

ClientAliveCountMax

Устанавливает количество живых сообщений клиента, которые могут быть отправлены без получения sshd (8) каких-либо сообщений от клиента. Если этот порог будет достигнут во время отправки сообщений «живы» клиенты, sshd отключит клиента, завершив сеанс. Важно отметить, что использование сообщений об активности клиента сильно отличается от TCPKeepAlive. Сообщения о работающем клиенте отправляются через зашифрованный канал и, следовательно, не могут быть подделаны. Параметр TCP keepalive, включенный TCPKeepAlive, является подделкой. Механизм активности клиента полезен, когда клиент или сервер зависят от информации о том, когда соединение стало неактивным.

Значение по умолчанию - 3. Если для ClientAliveInterval установлено значение 15, а для ClientAliveCountMax оставить значение по умолчанию, неотвечающие клиенты SSH будут отключены примерно через 45 секунд.

ClientAliveInterval

Устанавливает интервал тайм-аута в секундах, по истечении которого, если от клиента не было получено никаких данных, sshd (8) отправит сообщение через зашифрованный канал, чтобы запросить ответ от клиента. Значение по умолчанию - 0, что означает, что эти сообщения не будут отправлены клиенту.

( man sshd_config)

Возможно, реальное решение вашей проблемы заключается в использовании терминального мультиплексора, такого как screen или tmux. Они позволяют вашему логину и запущенным программам работать, даже если ваше соединение разрывается. Вы можете повторно подключиться к терминалу в любой более поздний момент, включая вывод запущенных программ.Также вы можете использовать его, чтобы иметь более одного терминала в одном SSH-соединении. Поскольку ваш сервер, похоже, ограничивает ваши сеансы ssh, это также может быть полезно. Вы можете найти одно введение в screen здесь , но есть множество других.

47
02.04.2019, 20:43
1 ответ

Я столкнулся с той же проблемой, показывающей active (exited).Основная причина заключается в том, что мой процесс оболочки просто завершает работу после запуска некоторого сервисного демона с помощью команды start -stop -daemon.

И решение заключается в том, чтобы превратить мой процесс оболочки в бесконечный цикл вместо прямого выхода. Таким образом, он показывает active (running)после выполнения systemctl start my-service-name.service.

Кроме того, в этом цикле процесс оболочки отслеживает состояние сервисного демона. Как только процесс оболочки обнаруживает, что сервисный демон переходит в состояние ошибки, он просто прерывает бесконечный цикл и завершает работу.

3
29.01.2021, 01:36

Теги

Похожие вопросы