从远程 shell 脚本运行 pm2

从远程 shell 脚本运行 pm2

我正在尝试编写一个脚本,该脚本可以通过 ssh 连接到我的一组服务器并运行一些命令来启动我的应用程序。其中一个命令 (pm2) 总是显示 pm2:未找到命令。我尝试这样做:

ssh -o StrictHostKeyChecking=no -i /Path/to/key-pair.pem ubuntu@${ec2ips[i]} 'bash ' << 'STARTAPP'
    cd ~/my-app-folder
    pm2 start ./bin/www --name 'my-app'
    exit
STARTAPP

当我正常 ssh 登录时,所有 pm2 命令都运行良好。如果我通过 ssh 登录并运行包含 pm2 的脚本,它也会按预期工作。仅当我尝试从我的计算机在远程计算机上运行它时才会出现这种情况。

答案1

当您运行交互式 shell 时,它会根据您的“rc”文件(例如 .bash_profile)设置 PATH 变量。当您运行“非交互式”ssh 命令时,许多脚本不会运行,因此不会设置 PATH。

pm2即使它是当前目录(例如./pm2或) ,您也应该包含路径名/path/to/pm2以确保找到它,否则export PATH=....在调用pm2.

相关内容