stderr always coming in stdout
まだ誰も着手していません。
- #342 @steelbrain による — マージされずにクローズ
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 35/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- node.js, typescript
- 領域
- networking
調査の方向性
報告されている pty、stdin、stream: 'both' のオプションを使い、ssh.exec のエントリポイントから開始して、コマンドの出力が result.stdout と result.stderr にどのように割り当てられるかを追跡します。sudo apt updat のケースを再現し、エラーテキストが result.stderr に分離され、終了コードが 100 のままであることを確認します。
索引モデルが issue の本文から書いたものです。
説明
Hi,
I have faced an issue, which always returns stderr in result.stdout rather than result.stderr.
node-ssh version 10.0.2
ssh.connect({
host: 'localhost',
username: '<username>',
password: '<password>'
}).then(() => {
ssh.exec('sudo apt updat', [], {
execOptions: { pty : true },
stdin: '<password>\n',
stream: 'both'
}).then((result) => {
console.log("Result StdOut", result.stdout)
console.log("Result StdErr", result.stderr)
console.log("Result", result)
})
})
Note: Intensively I make an error in the command sudo apt updat to expecting error.
When I execute above code I got the error always in the stdout.
Result StdOut
[sudo] password for <username>:
E: Invalid operation updat
Result StdErr
Result {
code: 100,
signal: null,
stdout: '<password>\r\n' +
'[sudo] password for <username>: \r\n' +
'\u001b[1;31mE: \u001b[0mInvalid operation updat\u001b[0m',
stderr: ''
}
But the same is working expected using ssh2
Below is the sample.
var Client = require('ssh2').Client;
var conn = new Client();
conn.on('ready', function() {
console.log('Client :: ready');
conn.exec('apt updat', function(err, stream) {
if (err) throw err;
stream.on('close', function(code, signal) {
console.log('Stream :: close :: code: ' + code + ', signal: ' + signal);
conn.end();
}).on('data', function(data) {
console.log('STDOUT: ' + data);
}).stderr.on('data', function(data) {
console.log('STDERR: ' + data);
});
});
}).connect({
host: 'localhost',
port: 22,
username: '<username>',
password: '<password>'
});
Output is
STDERR:
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
STDERR: E: Invalid operation updat
STDERR:
Stream :: close :: code: 100, signal: undefined
- 主要言語
- TypeScript
- スター
- 1k
- フォーク
- 94
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
steelbrain/node-ssh のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
steelbrain/node-ssh#487 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
steelbrain/node-ssh#482 · コメント 3 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
steelbrain/node-ssh#474 · コメント 3 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
steelbrain/node-ssh#473 · コメント 1 件 · リアクション 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 20/100
steelbrain/node-ssh#472 ·
steelbrain/node-ssh の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
-
cli: `execCargoMetadata` decodes stdout per chunk, corrupting non-ASCII paths across pipe boundariesオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
難易度 1/5 1時間未満 初心者へのやさしさ 62/100
lingdojo/kana-dojo#34127 · コメント 1 件 · リアクション 5 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
osmlab/name-suggestion-index#13104 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100