Javascript 是否有必要在OpenShift上使用ever.js?

Javascript 是否有必要在OpenShift上使用ever.js?,javascript,node.js,openshift,forever,Javascript,Node.js,Openshift,Forever,我已经在OpenShift的免费层上部署了我的第一个Node.js应用程序,效果非常好 OpenShift会在我的节点应用程序崩溃时自动重新启动吗?还是我必须设置Forever.js?我试着设置它,但它不起作用。运行node\u modules/forever/bin/forever start app.js(工作目录为app root/repo,带有forever的本地副本)后,我得到以下输出: warn: --minUptime not set. Defaulting to: 1000

我已经在OpenShift的免费层上部署了我的第一个Node.js应用程序,效果非常好

OpenShift会在我的节点应用程序崩溃时自动重新启动吗?还是我必须设置Forever.js?我试着设置它,但它不起作用。运行
node\u modules/forever/bin/forever start app.js
(工作目录为
app root/repo
,带有
forever
的本地副本)后,我得到以下输出:

warn:    --minUptime not set. Defaulting to: 1000ms
warn:    --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info:    Forever processing file: app.js

fs.js:240
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^
Error: ENOENT, no such file or directory '/var/lib/openshift/5397416f5004466c0b000080/.forever/VQMF.log'
    at Object.openSync (fs.js:240:18)
    at Object.startDaemon (/var/lib/openshift/5397416f5004466c0b000080/app-root/runtime/repo/node_modules/forever/lib/forever.js:406:14)
    at /var/lib/openshift/5397416f5004466c0b000080/app-root/runtime/repo/node_modules/forever/lib/forever/cli.js:258:13
    at /var/lib/openshift/5397416f5004466c0b000080/app-root/runtime/repo/node_modules/forever/lib/forever/cli.js:145:5
    at Object.oncomplete (/var/lib/openshift/5397416f5004466c0b000080/app-root/runtime/repo/node_modules/forever/lib/forever.js:358:11)

那么,OpenShift是为我管理应用程序的运行状况,还是我需要永远工作?如果是这样,你知道我的错误吗?

是的,OpenShift会在你的节点应用程序崩溃时自动重启。OpenShift不使用ever.js,但它使用。你可以通过要求一些不存在的东西来测试它。但要快速修复,因为重新启动应用程序时,日志会快速增长。以下是OpenShift上nodejs.log的日志,它显示它正在运行节点管理器:

DEBUG: Running node-supervisor with
DEBUG:   program 'server.js'
DEBUG:   --watch '/var/lib/openshift/53a9e06ae0b8cde26300008e/app-root/data/.nodewatch'
DEBUG:   --ignore 'undefined'
DEBUG:   --extensions 'node|js|coffee'
DEBUG:   --exec 'node'
DEBUG: Starting child process with 'node server.js'
DEBUG: Watching directory '/var/lib/openshift/53a9e06ae0b8cde26300008e/app-root/data/.nodewatch' for changes.

目前,OpenShift的默认行为包括使用
supervisor
启动、监视和重新启动nodejs应用程序

下面是nodejs的各种init选项的简要概述:

  • 如果您的应用程序包含一个有效的
    package.json
    文件和
    main
    条目(),则OpenShift将使用
    supervisor
    启动该脚本来初始化您的应用程序
  • 如果您的应用程序包含(在
    .openshift/markers/use\u npm
    中为空文件),则openshift将只运行
    npm start
    。这将运行您的
    包.json
    文件的
    脚本.start
    实体中定义的任何内容
  • 如果所有其他操作都失败,OpenShift将尝试使用
    supervisor
    运行
    server.js
    (作为备用选项)

  • 这里提供了一些附加说明:

    有趣,日志在哪里?它是否使用
    main
    脚本。为此启动
    ?使用应用程序下openshift站点的命令字符串将ssh安装到系统上。然后是cd app根目录/日志,所有日志都在那里。我确信他们正在使用脚本进行部署,因为在启动应用程序之前已经启动/安装/设置了很多东西。。。不过,我还没有深入了解它是哪一个脚本。谢谢,这也很有帮助。:)完美的问题,这正是我需要知道的从模数(这也重新启动您的应用程序)移动过来。模数还可以选择向您发送电子邮件,有人知道OpenShift是否可以做到这一点吗?(看起来节点主管没有该选项)