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

Linux(Ubuntu)下GOCD Agent执行PM2重启命令报错:进程未找到

解决GoCD Agent执行PM2重启命令找不到进程的问题

问题原因

PM2的进程是用户隔离的,每个Linux用户有独立的PM2进程列表(存储在~/.pm2目录)。GoCD Agent默认以特定系统用户(通常是go)运行,你手动用个人用户或sudo添加的PM2进程,Agent用户根本看不到,所以会报"Process or Namespace not found"。

解决方案

  1. 确认GoCD Agent的运行用户
    执行以下命令查看Agent进程的所属用户:

    ps aux | grep go-agent
    

    输出里的第一列就是Agent的运行用户(比如go)。

  2. 用Agent用户添加PM2进程
    切换到Agent用户,在该用户环境下启动你的应用:

    sudo su - <agent-user>  # 替换<agent-user>为实际用户,比如go
    pm2 start /path/to/your/node/app.js --name my-app
    pm2 save  # 保存进程列表,确保重启后自动恢复
    

    之后再用GoCD执行pm2 restart my-app就能找到进程了。

  3. (备选)在GoCD任务中指定用户执行
    如果不想切换用户,可在GoCD的任务命令里用sudo指定Agent用户执行:

    sudo -u <agent-user> pm2 restart my-app
    

    需提前给Agent用户配置免密sudo权限:

    • 编辑sudoers文件:sudo visudo
    • 添加一行:<agent-user> ALL=(ALL) NOPASSWD: /usr/bin/pm2
    • 保存退出即可。

验证方法

切换到Agent用户后执行pm2 list,确认my-app出现在进程列表里,再手动执行pm2 restart my-app测试,无报错后再用GoCD运行任务。

内容的提问来源于stack exchange,提问作者Pramod Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 18:02:50