Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux OpenShift:“;无法执行控制启动";节点应用_Linux_Node.js_Openshift - Fatal编程技术网

Linux OpenShift:“;无法执行控制启动";节点应用

Linux OpenShift:“;无法执行控制启动";节点应用,linux,node.js,openshift,Linux,Node.js,Openshift,我提前意识到这是一个模糊的问题,但我很困惑,我还可以在这里尝试什么 我一直在考虑其他问题,并遵循他们的建议,但到目前为止,我的问题还没有得到解决 这是我得到的具体错误 Stopping NodeJS cartridge Fri Jul 10 2015 10:36:28 GMT-0400 (EDT): Stopping application 'appname' ... Fri Jul 10 2015 10:36:29 GMT-0400 (EDT): Stopped Node applicatio

我提前意识到这是一个模糊的问题,但我很困惑,我还可以在这里尝试什么

我一直在考虑其他问题,并遵循他们的建议,但到目前为止,我的问题还没有得到解决

这是我得到的具体错误

Stopping NodeJS cartridge
Fri Jul 10 2015 10:36:28 GMT-0400 (EDT): Stopping application 'appname' ...
Fri Jul 10 2015 10:36:29 GMT-0400 (EDT): Stopped Node application 'appname'

Starting NodeJS cartridge
Fri Jul 10 2015 10:36:30 GMT-0400 (EDT): Starting application 'appname' ...

Waiting for application port (8080) become available ...

Application 'appname' failed to start (port 8080 not available)

Failed to execute: 'control restart' for /var/lib/openshift/MYID/nodejs
我的
package.json
文件是我所有依赖项的最新版本,具有
脚本:{start:'node server.js'}
属性,但我仍然收到此错误

如果我使用SSH连接到我的
current/repo
目录并运行
node server.js
,它就可以正常工作。但是,我不能只使用
screen
在后台永远运行它

我还尝试过停止和重新启动,git推送,以及通过浏览器重新启动。我不知道还有什么办法可以让我的(非常简单的)节点应用程序在OpenShift上运行


非常感谢您的建议。

对于OpenShift节点应用程序,您需要将启动脚本指定为:
main:“server.js”
而不是使用
脚本。这是由于在OpenShift上使用启动节点应用程序的方式。

OpenShift节点应用程序要求您在包中提供启动应用程序的配置。json位于main脚本下。start

"scripts": {
     "start": "node server.js"
  },
"main": "server.js"
此外,还需要通过环境变量为其提供节点环境提供的IP端口

for PORT Number       process.env.OPENSHIFT_NODEJS_PORT
for IP                process.env.OPENSHIFT_NODEJS_IP
如果这些变量未在应用程序中使用,则会显示错误,如下所示:

Waiting for application port (8080) become available ...
Application 'appname' failed to start (port 8080 not available)
下面是一个示例,演示如何在节点应用程序中使用这些环境变量(来源):

资料来源:


相关帖子:

好吧,多亏了你的评论,我仔细查看了我的
package.json
,在
main
下的文件名中没有句号,而是用了逗号。谢谢!此外,启动所需的其他文件中可能存在一些语法错误。我在一个子文件中出错,在修复另一个文件之前无法启动应用程序。另外,不要忘记在json代码段周围使用{和},否则它将无法编译。
var server_port = process.env.OPENSHIFT_NODEJS_PORT || 8080
var server_ip_address = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1'

server.listen(server_port, server_ip_address, function () {
console.log( "Listening on " + server_ip_address + ", server_port " + port )
});