我有一个由用PHP编写的主管控制的长寿命过程,它是一个在redis频道上收听的Laravel命令。当数据到达时,它使用leagure / sftp库通过SFTP将数据从通道推送到另一台服务器。它在启动过程后大约12个小时内正常工作并在此后开始返回以下错误的问题:
文件: /var/www/html/hub/vendor/phpseclib/phpseclib/phpseclib/Net/SSH2.php
行:3416
代码:0
消息:连接过早关闭
此过程需要重新启动才能正常工作12小时。
你们有什么想法吗?
答案 0 :(得分:1)
通过每次访问SFTP服务器之前重新连接来解决问题:
/**
* @var \Illuminate\Filesystem\FilesystemAdapter $disk
*/
$adapter = $disk->getDriver()->getAdapter();
$adapter->disconnect();
$adapter->connect();
答案 1 :(得分:0)
这里的主题是否相同?
[Perl][net::ssh2] How to keep the ssh connection while executing remote command
另一个解决方案是在12小时之前重新验证服务器。