Node.js 使用forever运行多个脚本
我在一个目录中有几个脚本,每个脚本称为bot,它的编号从1到脚本的编号 我想做的是通过终端(使用Ubuntu)通过1个命令行运行所有脚本,我使用Node.js 使用forever运行多个脚本,node.js,ubuntu,forever,Node.js,Ubuntu,Forever,我在一个目录中有几个脚本,每个脚本称为bot,它的编号从1到脚本的编号 我想做的是通过终端(使用Ubuntu)通过1个命令行运行所有脚本,我使用forever命令运行脚本而不停止等等 您可以通过终端或使用node js脚本完成吗 是否还有其他像forever这样的命令可以为我执行此操作?您可以通过命令行将其与命令forever一起使用 您需要创建一个包含所需文件的JSON文件 例如: [ { // App1 "uid": "app1", // ID of the script
forever
命令运行脚本而不停止等等
您可以通过终端或使用node js脚本完成吗
是否还有其他像forever这样的命令可以为我执行此操作?您可以通过命令行将其与命令
forever
一起使用
您需要创建一个包含所需文件的JSON
文件
例如:
[
{
// App1
"uid": "app1", // ID of the script.
"append": true,
"watch": true,
"script": "bot1.js", // Name of the script
"sourceDir": "" // Where the script is located. If it's in the
// same location as the json file, leave it ""
},
{
// App2 = > Same as app1, just different script name.
"uid": "app2",
"append": true,
"watch": true,
"script": "bot2.js",
"sourceDir": ""
}
]
然后您只需要通过forever
命令运行JSON
文件。
例如:
你可以看到更多关于永远的信息,我的答案与@Nikita Ivanov的答案相同,但有pm2。我个人喜欢pm2,它也像forever一样使用配置文件,但它可以是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脚本中的一个模块使用
有关更多信息,请参阅
module.exports = (function () {
// logic to get all file names and create the 'apps' array
return {
apps: apps
}
})()