league/sftp 连接过早关闭

league/sftp Connection closed prematurely

我在 php 中有一个由 supervisor 控制的长期进程,它是一个 Laravel 在 redis 通道上监听的命令。当数据到达时,它使用 leagure/sftp 库通过 SFTP 将数据从通道推送到另一台服务器。启动进程后大约12小时才正常工作,之后开始返回以下错误的问题:

File: /var/www/html/hub/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php

Line: 3416

Code: 0

Message: Connection closed prematurely

该进程需要重新启动才能正常工作另外 12 小时。

你们有什么想法吗?

是不是同一个主题?

[Perl][net::ssh2] How to keep the ssh connection while executing remote command

另一种解决方法是re-auth在12小时之前到服务器。

每次访问SFTP服务器前重新连接解决问题:

/**
             * @var \Illuminate\Filesystem\FilesystemAdapter $disk
             */

            $adapter = $disk->getDriver()->getAdapter();
            $adapter->disconnect();
            $adapter->connect();