Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.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
Node.js nodejs应用程序无法在重新启动后永久正确启动_Node.js_Restify_Forever - Fatal编程技术网

Node.js nodejs应用程序无法在重新启动后永久正确启动

Node.js nodejs应用程序无法在重新启动后永久正确启动,node.js,restify,forever,Node.js,Restify,Forever,我有一个nodejs应用程序,我想在服务器重新启动后自动重新启动。我已经创建了一个脚本来启动应用程序,如下所示 #!/bin/sh export PATH=/usr/bin:$PATH forever start --command node --minUptime 1000 --spinSleepTime 10000 --sourceDir /etc/csc server.js >> /etc/csc/log.txt 2>&1 我还创建了一个crontab条目,用于

我有一个nodejs应用程序,我想在服务器重新启动后自动重新启动。我已经创建了一个脚本来启动应用程序,如下所示

#!/bin/sh
export PATH=/usr/bin:$PATH
forever start --command node --minUptime 1000 --spinSleepTime 10000 --sourceDir /etc/csc server.js >> /etc/csc/log.txt 2>&1
我还创建了一个crontab条目,用于在重新启动后运行此脚本:

@reboot /etc/csc/csc-starter.sh
尽管如此,我不认为crontab部分是真正相关的,我将在下面解释。问题是,虽然nodejs应用程序在重新启动后启动,但它不能正确响应客户端请求。例如,调用一个URL会导致显示(在浏览器中)应用程序的主视图,从而产生以下输出:

{
code: "ResourceNotFound",
message: "/"
}
有趣的是,当我手动调用starter脚本时,观察到了相同的输出。但是,如果我以以下方式运行nodejs应用程序:

node /etc/csc/server.js
它工作得非常好。我是Linux的新手,您可能会有把握地认为,我可能不知道在Linux中工作的一些公认事实,例如将应用程序置于/etc下是否合适

你知道为什么用forever启动应用程序会改变它的内部行为吗?这个应用程序非常简单。它基于restify,有几个REST路径,以及托管静态内容,但它真的没什么特别的


谢谢。

/etc可能不是应用程序的最佳位置。虽然这与你的问题没有直接关系

当您从命令行手动启动应用程序时,您可能已经在/etc/csc目录中

尝试将目录更改添加到启动脚本:

#!/bin/sh
export PATH=/usr/bin:$PATH
cd /etc/csc
forever start --command node --minUptime 1000 --spinSleepTime 10000 --sourceDir /etc/csc server.js >> /etc/csc/log.txt 2>&1
应用程序可能配置为使用当前目录之外的子目录作为其静态资源

--

你应该考虑把你的应用程序放到/opt/CSC中。对于第三方应用来说,这是一个更通用的地方/etc更多用于系统配置

/etc/csc server.js >>
删除路径中的空间

/etc/csc/server.js >>

谢谢你的快速回复。我添加了变更目录,一切都很好!我想我对forever会为我做什么做了很多假设,特别是因为它需要一个sourceDir参数。生活和学习。(我把应用程序移到了/opt/csc,也谢谢你的提示)。