Лига / SFTP Соединение закрыто преждевременно
У меня есть долгоживущий процесс, контролируемый супервизором, написанный на php, это команда Laravel, которая прослушивает канал redis. Он передает данные из канала на другой сервер через SFTP, используя библиотеку leagure/sftp, когда данные поступают. Проблема в том, что он работает нормально только в течение примерно 12 часов после запуска процесса и после этого начинает возвращать следующую ошибку:
Файл: /var/www/html/hub/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php
Линия: 3416
Код: 0
Сообщение: соединение закрыто преждевременно
Процесс требует перезапуска, чтобы нормально работать еще 12 часов.
Ребята, у вас есть идеи?
2 ответа
Проблема решается путем повторного подключения каждый раз перед доступом к SFTP-серверу:
/**
* @var \Illuminate\Filesystem\FilesystemAdapter $disk
*/
$adapter = $disk->getDriver()->getAdapter();
$adapter->disconnect();
$adapter->connect();
Это та же тема здесь или нет?
[Perl] [net:: ssh2] Как сохранить соединение ssh при выполнении удаленной команды
Другим решением является повторная авторизация на сервере до 12 часов.