记一次在服务器上运行node.js程序时无法通过nohup xxx & 方式挂起的问题

发布时间 2023-10-19 17:41:59作者: seizedays

      由于业务需求 每天要在服务器上整理一组数据,为了方便就用node.js来写了。但是运行的时候发现了一个问题 明明使用了nohup main.js &的方式后台运行了程序 但是一旦我关闭了shell控制台 这个后台运行的程序也会跟着终止掉,不知道是什么原因,于是采用forever.js的方式来运行项目,记录一下过程。

  1.直接通过npm全局安装foreve.js

$ npm i forever -g

      2. 使用forever启动项目

$ forever start -l /home/node_project/forever.log -m 0 -a main.js &

 注:-m 0 指js执行终止后重试0次 这样就不会循环执行同样的js文件了 如果需要项目宕掉后自动重启 可以将参数调整为大于0的数字

 3. forever.js的常用命令记录如下:(从别的地方粘贴过来的)

启动相关

// 1. 简单的启动
forever start main.js &

// 2. 指定forever日志输出位置,默认位置为: ~/.forever/forever.log
forever start -l forever.log main.js &

// 3. 指定main.js中的日志信息和错误日志输出文件,
// -o 就是console.log输出的信息,-e 就是console.error输出的信息
forever start -o out.log -e err.log main.js &

// 4. 追加日志,forever默认是不能覆盖上次的启动日志
forever start -l forever.log -a main.js &

// 5. 监听当前文件夹下的所有文件改动,并重启服务 
forever start -w main.js &

// 6. 显示所有forever运行的任务列表
forever list

停止操作
// 1. 停止所有运行的node App
forever stopall

// 2. 停止其中一个node App
forever stop main.js
// 也可以先通过 forever list 找到对应的程序id 然后执行如下命令关闭:
forever stop [id]

重启操作
// 1. 重新启动所有任务
forever restartall
// 2. 重启其中一个任务
forever restart main.js