запустить 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 работают нормально. Если я вхожу и запускаю скрипт с pm2 в нем, он также работает так, как ожидалось. Только когда я пытаюсь запустить его на удаленном компьютере с моей машины.

One Solution collect form web for “запустить pm2 из удаленного сценария оболочки”

Когда вы запускаете интерактивную оболочку, она устанавливает переменную PATH в соответствии с вашими «rc» файлами (например, .bash_profile). Когда вы запускаете эту «неинтерактивную» команду ssh, многие из этих сценариев не запускаются, поэтому PATH не установлен.

Вы должны указать путь к pm2 даже если это текущий каталог (например ./pm2 или /path/to/pm2 ), чтобы убедиться, что он найден, или export PATH=.... перед вызовом pm2 .

  • Разархивируйте в каталог, независимо, если каталог содержится в ZIP
  • Игнорировать пробелы для цикла при печати имени файла?
  • POSIX-совместимый / кросс-shell-способ для получения версии запущенной оболочки?
  • Команда Shell для сохранения списка фильмов в csv
  • Аргу слишком длинная ошибка при использовании find
  • чтение из файла и изменение его шаблона в массив?
  • Как решить sudo: невозможно выполнить / bin / ls: слишком много аргументов
  • Пройдите через каждую подпапку, проверьте папку и запустите скрипт
  • Показать текст в виде звездочек
  • Как получить исходный вывод showkey для использования в скрипте?
  • Быстрый скрипт awk для получения подстроки / строки, которую мы хотели
  • Linux и Unix - лучшая ОС в мире.