Итак, у меня есть ряд вопросов, но сначала позвольте мне предоставить некоторую справочную информацию.
Я занимаюсь разработкой бота Discord с Node.js и использую PM2 для управления процессами. Это древовидная структура домашнего каталога VPS, на котором я его запускаю:
root@discord-bot-vps:~# tree . -L 2
.
├── bigbotupdate.sh
├── botupdate.sh
├── ecosystem.config.js
└── fcfs-bot
├── db
├── index.js
├── node_modules
├── package.json
├── package-lock.json
├── README.md
└── src
Я изначально запустил бота с файлом экосистемы, внутри каталога fcfs-bot
, в котором находится git хранилище. Файл ecosystem.config.js
выглядел так:
module.exports = {
apps : [{
name: 'FCFS-BOT',
script: 'index.js',
instances: 1,
autorestart: true,
watch: false,
shutdown_with_message: true,
kill_timeout : 3000,
time: true,
env: {
NODE_ENV: 'production',
FCFS_BOT_TOKEN: 'REDACTED'
},
}]
};
С тех пор я переместил файл ecosystem.config.js
в домашний каталог, но при запуске процесса с pm2 start ecosystem.config.js
из домашнего каталога он все еще работает , Для меня это нелогично, так как я думаю, что ссылка на index.js
для скрипта больше не будет работать, так как теперь она находится в подкаталоге относительно ecosystem.config.js
. Однако все работает нормально.
Я пытался протестировать некоторые другие вещи, в том числе переименование ecosystem.config.js
, а затем запуск процесса с pm2 start FCFS-BOT
. Это также работает, что смущает меня, так как у меня сложилось впечатление, что файл экосистемы был необходим для предоставления переменных среды для процесса, как описано здесь: https://pm2.keymetrics.io/docs/usage/environment/.
- Как PM2 хранит эти данные и где я могу их найти?
- Должен ли я продолжать запускать свое приложение с
pm2 start ecosystem.config.js
- то есть есть ли риск того, что переменные среды будут "забыты"? - Если нет, то есть ли лучший способ настроить переменные среды для приложения PM2, чем создать
ecosystem.config.js
, запустить его один раз, а затем удалить ecosystem.config.js
?