运行 几个永远的脚本
Running several scripts with forever
我在一个目录下有好几个脚本,每个脚本都叫bot,还有编号,从1到脚本的编号。
我想做的是以某种方式 运行 通过终端的 1 个命令行的所有脚本(使用 Ubuntu),我使用 forever
命令 运行脚本不停等
你能通过终端或使用节点 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
文件。
示例:
forever start apps.json
您可以查看更多关于 forever
here 的信息。
我的回答与@Nikita Ivanov 的回答相同,但使用了 pm2。我个人比较喜欢pm2,它也和forever一样使用config文件,不过可以是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模块,在js脚本中将pm2作为一个模块来使用。
有关详细信息,请参阅 PM2 DOCS。
我在一个目录下有好几个脚本,每个脚本都叫bot,还有编号,从1到脚本的编号。
我想做的是以某种方式 运行 通过终端的 1 个命令行的所有脚本(使用 Ubuntu),我使用 forever
命令 运行脚本不停等
你能通过终端或使用节点 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
文件。
示例:
forever start apps.json
您可以查看更多关于 forever
here 的信息。
我的回答与@Nikita Ivanov 的回答相同,但使用了 pm2。我个人比较喜欢pm2,它也和forever一样使用config文件,不过可以是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模块,在js脚本中将pm2作为一个模块来使用。
有关详细信息,请参阅 PM2 DOCS。