错误:EBADF,当使用nohup永远运行节点时,坏的文件描述符

我有一个node.js的问题,运行一个小型的Web服务器,从文件系统提供文件。 当用node server.js启动它时,它就像一个魅力,但是当用nohup或永远启动它时,node.js找不到这些文件。

这适用于我:

 nohup node server.js </dev/null 

另一个解决scheme是使用圆括号在子shell中运行命令。 (nohup node index.js)

原来是文件的文件path是问题所在。 当使用节点运行服务器时,工作目录与server.js文件相同,因此node.js设法find该文件。

当开始使用nohup或刚开始永远工作目录似乎不与server.js相同。

我通过将全局variables__dirname添加到文件名来解决这个问题。