我跑步时
gcloud compute ssh user@instance-1
然后,当我进入ssh'd时,键入pm2
,它会按预期方式打印出帮助消息。
如果我改为跑步
gcloud compute ssh user@instance-1 --command "pm2"
它将打印出bash: pm2: command not found
我以前已经安装了pm2
(通过同时以root用户和npm install -g pm2
身份运行user
)。
这是怎么回事?
答案 0 :(得分:2)
我的假设是,在第一个配方中,您将执行登录操作,这意味着将运行.profile和/或.bashrc脚本,这些脚本会修改PATH环境变量,以包含要运行的命令的位置({{1 }})。在第二个配方中,您提供pm2
,我的假设是在不执行您的配置文件脚本的情况下,可执行文件被派生/执行(直接运行)。这导致找不到命令。也许尝试运行一个脚本(通过命令)来记录您的环境变量(例如--command
),并查看它们与实际登录时的区别。
另一种解决方案是在命令中提供指向/bin/env
的完整路径。