2017-02-06 38 views
0

私は、phpで書かれたスーパーバイザーによって制御された長寿命のプロセスを持っています。これは、redisチャネルでリスンするLaravelコマンドです。これは、データが到着したときにleagure/sftpライブラリを使用してSFTP経由でチャネルから別のサーバにデータをプッシュします。それはプロセスを開始した後にのみ、約12時間の間、正常に動作し、その後、次のエラーを返す開始してしまうという問題:リーグ/ sftp接続が途中で終了しました

ファイル: /var/www/htmlと設定/ハブ/ベンダー/ phpseclib/phpseclib/phpseclib /ネット/SSH2.php

ライン:3416

コード:0

メッセージ:接続が途中で閉じ

プロセスを再起動して、通常12時間を通常動作させる必要があります。

皆さん、ありがとうございますか?

+0

ログファイルを投稿。 phpseclibはデフォルトで1MBに制限します。 'define( 'NET_SSH2_LOGGING'、2)'を実行し、そのエラーが発生したときに '$ ssh-> getLog()'を実行することでそれらを得ることができます。たぶんあなたができることは、そのような種類のエラーが "捕まえられる"たびに、ログファイルが生成されるエラーハンドラを書くことです。その後、ログファイルを取得したらpastebin.orgに投稿してください。 – neubert

答えて

0

問題は、SFTPサーバにアクセスする前に、すべての時間を再接続することによって解決されます。

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

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

ここでも同じテーマですか?

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

他の溶液を12時間前に、サーバーに再認証です。

+0

いいえ、それは同じように見えません。そしてリーグ/ sftpアダプターには再起動するAPIがありません。なぜそれは一日中働いていて、夜までに接続を失い始めているのか、奇妙なことです。 – Sergey

関連する問題