ssh远程执行总是退出127

ssh远程执行总是退出127

快速提问:

我有一个程序正在生成一个通过 SSH 执行基本远程命令的进程,例如:

ssh aiden@host /bin/ps

从我的 shell 手动运行这个是成功的(正如你所期望的),但是运行该任务的父程序总是退出 127 ...即使使用绝对路径。

返回 127 的不是本地端(它可以找到 ssh 二进制文件),而是始终是远程端,即使来自 shell 的等效命令(使用绝对路径)也能正常运行。

有什么想法为什么我的 shell 可以执行此命令,但我的程序不能?我意识到这可能是特定于我的语言的(因此是 StackOverflow 的一个问题),但我的程序将其环境传递给 SSH,所以我想不出有什么不同。

有任何想法吗?

答案1

问题解决了。我用来生成该进程的 API 错误地添加了引号:

在外壳上(工作正常)

]$ ssh aiden@host /bin/ps

我的程序正在执行相当于:

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

这会导致问题,因为 IIRC shell 处理引号,并且 shell 显然在 API 端缺失。

相关内容