2015-04-27 283 views
0

我正在运行Node.js和Socket.io进行在线聊天。 我已经创建了一个文件:Node.js - 启动时服务器崩溃,手动启动时不崩溃

/etc/init/example.conf 

它有两条线:

start on startup 
exec forever start /var/www/example.com/html/server.js //location of server file. 

每当我开始在聊天应用程序文件上传,它崩溃,但立即重新启动。

每当我杀死节点进程,并手动启动它 - 它工作正常。

我也无法从终端获取任何日志或任何内容,因为它是自动启动的 - 它不会将任何内容打印到终端。

我对Node.js和Linux一般还是一个新手。 Node.js在Express + Jade上运行。

如何确定具体原因?

+0

添加文件日志记录 – Transcendence

+0

@Transcendence我刚刚阅读了有关尾部方法,我能够将我的终端附加到自动启动过程。我发现错误 – arleitiss

+0

@arleitiss如果你发现你的问题的解决方案,你可以发布它作为答案,最好有一些描述你如何计算出来 –

回答

1

我设法解决了我的问题,经过一番搜索,我发现了关于尾部命令。

我的问题有点难以跟踪,因为Node.js是一个由autostart启动的进程,所以当我启动终端并连接到服务器时,进程只是在后台运行,基本上我不会得到任何输出(包括异常消息)。

无论如何,解决方案,为我工作是:

我输入

ps aux | grep node //to find PID of node process 

然后我去下面的目录

cd /proc/[pid of running node service]/fd 

在fd目录中有几个对象,你可以得到输出但如果你想附加和听服务器输出包括未捕获的异常,你需要1. 所以:

tail -f 1 

这样我就可以导致网站崩溃并看到输出。