Пользовательские данные EC2 не запускают мое приложение - PullRequest
0 голосов
/ 16 мая 2019

Я использую пользовательские данные экземпляра ec2, чтобы включить экземпляры автоматического масштабирования и запустить приложение.Я запускаю приложение js узла.

Но оно не работает должным образом.Я отладил и проверил вывод монитора облака экземпляра.Таким образом, он говорит:

pm2 command not found

После прочтения и исследования я обнаружил, что пути для команды от имени root нет.

В качестве пользовательских данных EC2при попытке запуска он находит путь /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

после ssh в качестве пользователя ec2

/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin

после ssh как sudo su это

/root/.nvm/versions/node/v10.15.3/bin:/sbin:/bin:/usr/sbin:/usr/bin

Работает только для последнего пути.

Так каким же образом или сценарием запускается команда от имени root во время запуска экземпляра, предоставленного данными пользователя?

1 Ответ

0 голосов
/ 16 мая 2019

Не рекомендуется запускать ваше приложение с пользовательскими данными, поскольку согласно документации AWS они не гарантируют, что экземпляр будет запущен только после успешного выполнения пользовательских данных. Даже если пользовательские данные потерпели неудачу, это ускорит ваш экземпляр.

Для вашей проблемы, я полагаю, если вы дадите полный абсолютный путь двоичного файла, он будет работать.

/ корень / .nvm / версия / узел / v10.15.3 / бен / пм2

Лучшее решение для этого подхода: создать файл службы для запуска приложения и запустить приложение с помощью systemd или service.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...