【问题标题】:ssh running a command gives different results to running it locallyssh 运行命令会给在本地运行它提供不同的结果
【发布时间】:2020-12-09 15:13:51
【问题描述】:

我有一个使用 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 运行,就像它可以在同一个盒子上本地运行一样

一个

【问题讨论】:

  • 额外的斜线通常没问题。大概/usr/local/bin/ 被添加到您的.bash_profile.bashrc 中的PATH 变量中,当通过ssh 运行命令时,该变量不是来源。也许您可以在testscript.sh 的顶部添加类似的行。

标签: python bash ssh zsh


【解决方案1】:

当您通过 SSH 运行命令时,您不会启动所谓的 login shell(更多关于 here)。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    • 2019-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-19
    相关资源
    最近更新 更多