gpt4 book ai didi

node.js - 如何使用 ssh 远程运行(shebang 前缀) Node 脚本?

转载 作者:太空宇宙 更新时间:2023-11-03 23:59:40 26 4
gpt4 key购买 nike

我想远程运行包含shebang line的node.js脚本通过 ssh,与本地运行时类似。

myscript 文件:

#!/usr/bin/env node
var param = process.argv[2] || 'help';
//... other js code

在每台主机上本地运行时 – 例如myscript arg1 – 它运行成功。当在集群中的“姐妹” Node 上远程运行时(包含相同的文件和目录结构,包括 nodemyscript):

ssh -o "PasswordAuthentication no" bob@123.1.2.3 /path/to/myscript arg1

我收到 /usr/bin/env: ‘node’: No such file or directory 错误。

我是否缺少 ssh 参数/选项?

<小时/>

模式详细信息:如果我运行

ssh -o "PasswordAuthentication no" bob@123.1.2.3 echo "hello"

它也工作得很好。请原谅我,这对你来说是显而易见的,我不是高级 Linux 用户,ssh manual似乎有点不知所措,尝试了这里找到的几个答案,但没有成功:

  1. What exactly does "/usr/bin/env node" do at the beginning of node files?
  2. Run scripts remotely via SSH
  3. how to run a script file remotely using ssh

最佳答案

如果登录时 node 可执行文件尚未存在于您的 PATH 环境变量中,您可以在脚本的 shebang 行中提供它的完整路径:

#!/usr/bin/env /full/path/to/node

正如其他人评论的那样,如果 node 的路径发生变化,您将必须更新脚本。这并不理想。或者,您可以通过指定 -t 标志强制 ssh 创建伪终端 session ,并在交互式 bash shell 中运行脚本:

ssh -t -o "PasswordAuthentication no" bob@123.1.2.3 'bash -ic "/path/to/myscript arg1"'

关于node.js - 如何使用 ssh 远程运行(shebang 前缀) Node 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55364379/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com