Мой ответ такой же, как ответ @Nikita Ivanov, но с pm2.Мне лично нравится pm2, который также использует конфигурационный файл, как и навсегда, но это может быть файл js, json или yaml.
// JS File
module.exports = {
apps : [{
name: "bot1",
script: "./bot1.js",
watch: true, // some optional param just for example
env: {
"NODE_ENV": "development",
}, // some optional param just for example
env_production : {
"NODE_ENV": "production"
} // some optional param just for example
},{
name: "bot2",
script: "./bot2.js",
instances: 4, // some optional param just for example
exec_mode: "cluster" // some optional param just for example
}]
}
Теперь, если вы не знаете, сколько существует скриптов,Хорошо.Поскольку это JS, вы можете написать скрипт для получения списка всех файлов в каталоге и создать массив, аналогичный приведенному выше, и использовать этот конфиг для pm2.
module.exports = (function () {
// logic to get all file names and create the 'apps' array
return {
apps: apps
}
})()
Кроме того, вы можететакже используйте модуль pm2 npm и используйте pm2 как модуль в js-скрипте и сделайте это.
См. PM2 DOCS для получения дополнительной информации.