問題タブ [ssh2-exec]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - スクリプトは ssh2_exec と stream_set_blocking でプロセスが終了するのを待ちません
私は2つのスクリプトを持っています:
最初のものには、次のコードが含まれています。
2 番目のものには、次のコードが含まれています。
最初のスクリプトを実行すると、2 番目のスクリプトが実行されるのを待つが、実行されない場合がある理由がわかりません。
たとえば、動作する場合、次の出力があります。
そして時々私はこれを持っています:
投稿ssh2_exec: wait end of a process to run nextも読みました。答えた人は、「ストリームが最後まで読み取られない場合、コマンドが正しく終了しない可能性がある」と述べました。誰かが私にこれを説明できますか?
java - スレッドに時間がかかりすぎる場合、executor サービスでスレッドを終了する方法は?
サンプル エグゼキューター サービス
ここに私のエグゼキュータ サービスのサンプル コードがあります。しかし、このロジックでは、接続に失敗したり、接続に時間がかかりすぎるサーバーに遭遇すると、アプリケーション内でハング時間が発生します。接続に x 時間以上かかる場合は、スレッドを終了/強制終了します。2 秒以内にサーバーに接続しない場合、スレッド タスクを終了するにはどうすればよいですか。
試み
次のコードを追加しましたが、2000 ミリ秒を超えるとスレッドが終了しないようです。
試行 2
node.js - xterm.js + ws + ssh2が端末のサイズ変更信号(SIGWINCH)をsshサーバーに送信しない
ここで私の問題を言い換えます。
「xterm.js」、「ws」、および「ssh2」ノード モジュールを使用する Web アプリがあります。すべてがうまく機能します。1つのことを除いて:
SIGWINCH ウィンドウのサイズ変更信号は、sshd サーバーまたは ssh2 ストリームに到達しません。他の sig、esc、ansi は問題なく動作します。Esc[8 が消えるだけです。
実際の xterm では、echo -e "\e[8;30;120t"
両端の端末のサイズを変更します。ここではありません。sock.send("\u001b[8;30;120t")
も何もしません。
my node アプリ サーバーの Console.log は、Escape[8 (または \e、\u001b、または \x1b) が成功しないことを示しています。他のエスケープ コードは動作します -- 矢印、マウス クリックなど。
クライアントで term.resize(x,y) を実行できますが、現在はサーバーで stty を使用する必要があります。Ssh2 の pty は、ログイン時にのみ設定します。SIGWINCH を伝播するにはどうすればよいですか? どこに閉じ込められていますか?