web-dev-qa-db-ja.com

sshリモート実行は常に127を終了します

簡単な質問:

次のようなSSH経由で基本的なリモートコマンドを実行するプロセスを生成するプログラムがあります。

ssh aiden@Host /bin/ps

これをシェルから手動で実行すると(予想どおり)成功しますが、タスクを実行している親プログラムは、絶対パスを使用しても常に127を終了します。

127を返すのはローカルエンドではありませんが(sshバイナリを見つけることができます)、絶対パスを使用したシェルからの同等のコマンドが正常に実行された場合でも、常にリモートエンドです。

シェルがこのコマンドを実行できるのに、プログラムが実行できない理由はありますか?これは私の言語に固有である可能性があることを認識しています(したがって、StackOverflowの質問です)が、私のプログラムはその環境をSSHに渡すため、何が違うのか考えられません。

何か案は?

2
Aiden Bell

問題が解決しました。プロセスを生成するために使用していたAPIは、誤って引用符を追加していました。

シェル上(正常に動作)

]$ ssh aiden@Host /bin/ps

私のプログラムは以下と同等のものを実行していました:

]$ ssh aiden@Host "/bin/ps"

IIRCシェルが引用符を処理し、シェルがAPI側から明らかに欠落しているため、これが問題を引き起こしていました。

2
Aiden Bell