You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一目录下使用PM2启动多个Laravel artisan后台进程?

PM2同目录多artisan进程启动方案

问题原因

PM2默认会将执行的脚本文件路径作为应用的核心识别标识,你两次启动命令调用的都是同目录下的artisan脚本,因此第二次启动时PM2会默认判定为你要更新已有的同脚本进程,导致第一个进程被覆盖。

解决方法

方法1:命令行添加强制启动参数

在原有启动命令中添加--force参数,强制PM2创建新的进程实例,不会覆盖已有同脚本进程:

# 启动队列工作进程
pm2 start artisan --interpreter php --name queue-worker --force -- queue:work --daemon
# 启动调度工作进程
pm2 start artisan --interpreter php --name schedule-worker --force -- schedule:work --daemon

方法2:使用生态配置文件统一管理(更推荐)

如果需要长期管理多个同项目进程,推荐使用PM2生态配置文件,后续批量操作更便捷:

  1. 在项目根目录创建ecosystem.config.js文件,内容如下:
module.exports = {
  apps : [
    {
      name: "queue-worker",
      script: "artisan",
      interpreter: "php",
      args: "queue:work --daemon",
      cwd: "./",
      instances: 1,
      autorestart: true
    },
    {
      name: "schedule-worker",
      script: "artisan",
      interpreter: "php",
      args: "schedule:work --daemon",
      cwd: "./",
      instances: 1,
      autorestart: true
    }
  ]
};
  1. 执行启动命令即可一次性启动两个进程:
pm2 start ecosystem.config.js

验证方式

启动完成后执行pm2 list命令,即可看到两个命名进程同时处于运行状态。

小提示:操作前可先执行pm2 delete all清空现有PM2进程,避免旧进程干扰测试。


内容的提问来源于stack exchange,提问作者Willy Ferry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:24:03