当我跑步时
gcloud compute ssh user@instance-1
然后,当我被ssh'd时,我输入pm2
,它会打印出一条帮助消息,正如预期的那样。
如果我改为运行
gcloud compute ssh user@instance-1 --command "pm2"
它打印出bash: pm2: command not found
我以前已经安装了pm2
(通过以 root 用户和 user
身份运行 npm install -g pm2
以获得良好的措施(。
这是怎么回事?
我的假设是,在第一个配方中,您执行登录,这意味着运行您的 .profile 和/或 .bashrc 脚本,这会修改您的 PATH 环境变量以包含您希望运行的命令的位置(pm2
(。 在第二个配方中,您提供--command
我的假设是可执行文件正在分叉/执行(直接运行(,而无需执行您的配置文件脚本。 这会导致找不到该命令。 也许尝试运行一个脚本(通过命令(来记录您的环境变量(例如/bin/env
(,看看它们与您实际登录时发现的内容有何不同。
另一种解决方案是在命令中提供pm2
的完整路径。