【问题标题】:Node.js Forever is not creating Log filesNode.js Forever 不会创建日志文件
【发布时间】:2017-02-20 20:40:22
【问题描述】:

forever 正在处理 2 个 nodejs 脚本。系统使用forever v0.11.1和node v0.10.29

# forever list
info:    Forever processes running
data:        uid  command  script      forever pid   logfile                 uptime        
data:    [0] D34J userdown app/main.js 7441    10950 /root/.forever/D34J.log 0:2:31:45.572 
data:    [1] P0BX userdown app/main.js 11242   11261 /root/.forever/P0BX.log 0:2:20:22.157 
# forever logs 0
error:   undefined
# forever logs 1
error:   undefined

问题:为什么forever创建的日志文件不见了?重新启动 2 个进程仍然不会创建任何日志文件...

目录/root/.forever 也不显示日志文件!

# ls -la /root/.forever
total 20
drwxr-xr-x 4 root root 4096 Jul  4 11:37 .
drwx------ 8 root root 4096 Jul 10 13:24 ..
-rw-r--r-- 1 root root  259 Jul 10 19:34 config.json
drwxr-xr-x 2 root root 4096 Jul  4 11:37 pids
drwxr-xr-x 2 root root 4096 Jul 10 17:12 sock

【问题讨论】:

  • 你用什么命令永远启动?您使用的是什么操作系统?

标签: javascript node.js forever


【解决方案1】:

如果您使用forever your_script.js 启动节点进程并且未指定日志文件,forever 会将您的日志写入终端(或在 Windows 上为 cmd)。运行forever listforever logs 时显示的日志文件并不反映现实,因为它不是在那种情况下创建的。但如果您指定日志文件,请遵循以下选项:

-l  LOGFILE      Logs the forever output to LOGFILE
-o  OUTFILE      Logs stdout from child script to OUTFILE
-e  ERRFILE      Logs stderr from child script to ERRFILE

,就像forever -l console.log -e error.log your_script.log,它们将被创建。

如果您希望forever 自动为您创建一个日志文件,您必须使用forever start your_script.js 作为守护程序启动您的脚本。在这种情况下,您还可以指定您的日志文件。

docs 页面中,您可以看到所有命令行选项。

【讨论】:

  • forever start bin/www -e logs/error.log -l logs/logs.log 没有创建任何文件.. 知道有什么问题吗?
【解决方案2】:

回答 Shreejibawa(因为我还不能评论)...

forever 对参数的顺序非常敏感。查看他们的文档并注意选项必须位于脚本之前。

forever [action] [options] SCRIPT [script-options]

代替:forever start bin/www -e logs/error.log -l logs/logs.log

试试:forever start -e /path/to/logs/error.log -l /path/to/logs/logs.log your_script.js

【讨论】:

    【解决方案3】:

    我在 OSX 中遇到了同样的问题。在 OSX 中(至少),命令 forever app.js 在前台启动永远的 进程 并且不会将日志写入文件,即使提供了 -l 和 -e 也是如此。在这种情况下,forever list 会列出文件,即使它不存在,forever logs i 会生成 error: undefined

    当使用forever start app.js 启动永久DAEMON 时,会出现日志文件并且可以使用forever logs i 查看。

    【讨论】:

      猜你喜欢
      • 2017-06-09
      • 1970-01-01
      • 2016-07-05
      • 1970-01-01
      • 1970-01-01
      • 2015-08-16
      • 1970-01-01
      • 1970-01-01
      • 2021-03-16
      相关资源
      最近更新 更多