Nodejs pm2 如何启动多个node
Nodejs pm2 如何启动多个node
1.服务器启动就启动pm2
2.启动多个node
pm2 /路径/app.js
3.启动后是不是不能关了?那么远程ssh的怎么办?
Nodejs pm2 如何启动多个Node实例
1. 服务器启动时自动启动PM2
为了确保PM2在服务器启动时自动运行,可以使用PM2的startup
命令生成一个初始化脚本,并将其添加到系统启动脚本中。这样,每次服务器重启时,PM2及其管理的应用程序都会自动启动。
pm2 startup
执行上述命令后,PM2会输出一条命令,你需要将这条命令复制并粘贴到终端执行。这将生成一个初始化脚本,使得PM2能够在系统启动时自动启动。
2. 启动多个Node应用实例
PM2允许你轻松地管理多个Node.js应用程序实例。你可以通过以下几种方式来实现:
方法一:使用start
命令
如果你有多个不同的Node.js应用,可以为每个应用单独启动实例。
pm2 start /路径/app1.js --name app1
pm2 start /路径/app2.js --name app2
这里,--name
参数用于给应用指定一个易于识别的名字,方便管理和监控。
方法二:使用ecosystem.config.js
文件
对于更复杂的场景,推荐创建一个ecosystem.config.js
文件来定义你的应用配置。这使得管理多个应用变得更加简单和高效。
module.exports = {
apps : [{
name: "app1",
script: "/路径/app1.js"
}, {
name: "app2",
script: "/路径/app2.js"
}]
}
然后使用以下命令启动所有定义的应用:
pm2 start ecosystem.config.js
3. 关闭SSH连接后的持久性
当你通过SSH连接到服务器并启动PM2管理的应用程序后,即使关闭SSH连接,PM2也会继续运行这些应用程序,因为PM2是以守护进程的形式运行的。但是,为了确保PM2服务在服务器重启后仍然可用,建议你设置PM2开机自启动,如上所述。
此外,你可以使用pm2 save
命令保存当前的PM2进程状态,以确保在下次服务器重启时,PM2能够恢复之前的状态并重新启动所有应用。
pm2 save
通过以上步骤,你可以轻松地使用PM2来管理多个Node.js应用实例,并确保它们在服务器重启后仍然正常运行。
screen 万能。
启动后可以关啊,也可以delete掉。说明文档里有
你可以自己创建一个apps.json
,然后通过pm2 start apps.json
来启动apps.json
里面定义的apps,该文件就是一个json格式的配置文件,告诉pm2该怎么去启动app,启动哪些app。比如:
[{
"name" : "your app name",
"script" : "the script to start your app",
"cwd" : "change working directory", // 指定该app工作目录,这样pm2会相对这个目录去找脚本之类的。
"error_file" : "app-err.log",
"out_file" : "app-out.log",
"pid_file" : "app.pid",
"one_launch_only" : "true",
"env": {
"NODE_ENV": "production"
}
}]
这个json是个数组,应该可以用这个json批量启动多个app,只是我还没试过。
要使用 PM2 启动多个 Node.js 应用程序实例,可以采用几种不同的方法。下面是几种常见的方式:
1. 使用 PM2 的 start
命令多次启动不同的应用
如果你有不同的应用程序文件,你可以分别启动它们:
pm2 start /路径/app1.js --name app1
pm2 start /路径/app2.js --name app2
2. 使用 PM2 的 start
命令启动单个应用的多个实例
如果你想在一个节点上运行同一应用的多个实例,你可以这样做:
pm2 start app.js -i max # 启动最大数量的实例以适应你的CPU核心数
或者指定具体的实例数:
pm2 start app.js -i 4 # 启动4个实例
3. 使用PM2配置文件
你可以创建一个JSON配置文件来定义你的应用及其启动参数,然后使用 PM2 从该文件启动应用:
ecosystem.config.js
module.exports = {
apps : [{
name: "app1",
script: "./app1.js"
}, {
name: "app2",
script: "./app2.js"
}]
};
然后使用:
pm2 start ecosystem.config.js
关于你的问题:
- 服务器启动就启动pm2: 你可以将上述命令加入到服务器启动脚本中,比如
/etc/rc.local
或者使用 systemd 服务。 - 启动后是不是不能关了?那么远程SSH的怎么办?: PM2 是一个进程管理工具,它可以确保即使终端关闭,应用也能继续运行。如果你需要通过远程SSH连接关闭应用或查看日志,可以使用
pm2 stop <app-name>
和pm2 logs <app-name>
命令。
这样,即使你断开了SSH连接,你的应用也会保持运行状态。