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

在Droplet中运行pm2 restart server时.env文件被删除,求排查原因

排查pm2重启时.env文件被删除的问题

以下是逐步定位问题根源的实用排查方向:

  • 检查pm2生态配置文件
    查看项目根目录的ecosystem.config.js(或ecosystem.json),重点核对exec_prestart、post_restart等钩子脚本,确认是否存在删除.env的命令(比如rm -f .env)。执行命令快速查看:

    cat ecosystem.config.js
    
  • 排查项目启动脚本
    打开package.json,检查scripts字段下的start、restart等命令,看是否包含删除.env的逻辑(比如"start": "rm .env && node server.js")。执行命令快速定位:

    cat package.json | grep -A 10 "scripts"
    
  • 查看pm2日志找操作痕迹
    pm2的日志会记录进程启动/重启时执行的所有命令,搜索.env或rm关键词,定位是否有删除操作:

    pm2 logs server --lines 100 | grep -E "rm|.env"
    
  • 检查系统自动清理机制
    确认服务器是否有定时任务(cron)或系统清理工具(如tmpwatch)误删文件,虽然这类操作通常和pm2重启无直接关联,但可以排除:

    crontab -l
    ls -la /etc/cron.* | grep -E "clean|tmp"
    

    同时查看.env的权限,确保文件权限正常,避免被意外修改/删除:

    ls -la .env
    
  • 测试pm2版本兼容性
    部分旧版本pm2存在已知bug可能导致文件异常,尝试升级到最新稳定版:

    npm install pm2@latest -g
    pm2 update
    
  • 临时验证测试
    先备份.env文件,再手动执行重启操作,实时监控文件变化:

    cp .env .env.bak
    pm2 restart server
    # 检查文件是否存在
    ls -la .env
    # 实时查看pm2日志
    tail -f $(pm2 log server --path)
    

    如果文件被删除,对比备份文件,确认是被彻底删除还是替换,排查是否有其他进程在操作该文件。

内容的提问来源于stack exchange,提问作者Muhammad Lahin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:00:08