ssh运行命令会给本地运行不同的结果

问题描述

我有一个使用Popen为Mac上的模拟器创建appium服务器的python脚本

self.appium_process = subprocess.Popen(["/usr/local/bin/appium","-a",self.ip,"--nodeconfig",self.node_file_path,"--relaxed-security","-p",str(appium_port),"-dc",default_capabilities],stdout=log_file,stderr=subprocess.STDOUT)

我创建了一个调用python脚本的bash shell脚本。当我从本地框中运行脚本时,它可以工作,并且appium日志显示连接。 但是我需要通过ssh运行此远程。因此,我使用以下代码调用脚本:

ssh 10.18.66.99 automation_fw/config/testscript.sh

但是,这总是以显示以下内容的日志结尾:

env: node: No such file or directory

我检查了一下,节点应用在调用之前有一个额外的斜杠:

$ which node
/usr/local/bin//node
$

我尝试更改计算机上的路径,但没有更改。我该如何从ssh中以与在同一盒子上本地运行相同的方式来运行它

A

解决方法

通过SSH运行命令时,不会启动login shell(有关here的更多信息)。

根据您分享的详细信息,我想说这是您环境中的某件事(在登录的shell外部运行),更具体地说,您的$PATH变量存在问题。您可能需要检查/etc/environment或类似的路径(取决于您的Linux风格)的错误值。