私はperl Net :: SSH2 v0.48を使用しており、stdinからの入力を読み取るリモートスクリプトを実行しようとしています。この接続のチャネルは、特定の要件にvt100 ptyを使用しています。 stdinにデータを書き込んだ後、$channel->send_eof();
も呼び出しています。しかし、リモートスクリプトはEOF文字をまったく受け取っていないようです。リモートスクリプトはPythonで、sys.stdin.read()
のようにstdinから読み込み、EOFを取得するまでハングします。この問題は、ptyを無効にするか、または入力ペイロード(EOF文字)を使用してchr(4)
を追加すると解決されます。ptyモードとEOFのPerl Net :: SSH2
質問:
send_eof()
が動作していない理由を任意のアイデア?- この問題を解決する最善の方法は何ですか?
- ptyが有効になっている場合、
send_eof()
は必須ではないと思いますか?
P.生産コードが複雑すぎて問題を説明することができず、最小限のコードの作業バージョンを準備するには時間がかかるので、私は今すぐコードスニペットを含めません。しかし、すぐにコードサンプルで質問を更新しようとします。
バージョン0.48はかなり古いバグです。あなたは最近のものを使うべきです。 – salva