Linux 什么';我的极简主义NodeJS设置有什么问题?

Linux 什么';我的极简主义NodeJS设置有什么问题?,linux,node.js,bash,logging,Linux,Node.js,Bash,Logging,我不知道我是否因为使用Log4J的经历而终生伤痕累累,但我真的不想因为登录NodeJS而进入Winston/Bunyan 这就是我想到的。我有一个crontab作业,在重新启动时启动我的NodeJS应用程序。它运行的bash脚本如下所示: #!/bin/bash node /opt/dist/server/app.js 2>> /var/log/myapp/err.log | tee -a /var/log/myapp/out.log */1 * * * * root

我不知道我是否因为使用Log4J的经历而终生伤痕累累,但我真的不想因为登录NodeJS而进入Winston/Bunyan

这就是我想到的。我有一个crontab作业,在重新启动时启动我的NodeJS应用程序。它运行的bash脚本如下所示:

#!/bin/bash

node /opt/dist/server/app.js 2>> /var/log/myapp/err.log | tee -a /var/log/myapp/out.log
*/1 * * * *     root    /root/bin/startup.sh
因此,我的crontab如下所示:

#!/bin/bash

node /opt/dist/server/app.js 2>> /var/log/myapp/err.log | tee -a /var/log/myapp/out.log
*/1 * * * *     root    /root/bin/startup.sh
我在中找到了这个,它解释了stdout是非阻塞的,而stderr是阻塞的。它还说这在生产中应该是可以的


不过到目前为止还不错。我会让它运行几天,看看会发生什么。这是个糟糕的主意吗?我最大的担忧是,我不知道管道是非阻塞的,但文件重定向是阻塞的。还有什么我可能不知道的,这可能会在这个设置中出错?

我不会说这是一个糟糕的想法,而且我也不确定这是否会有帮助,但是您是否已经检查了forever=>,这个模块至少做了两件重要的事情,第一,它确保您的节点脚本连续运行,第二,它为您运行的每个线程保留了一个单独的日志文件(用于stdout和stderr),这可能会让您有机会看到正在发生的事情。我已经100%准备好永远使用它,实际上,在我使用这个解决方案之前,我正试图让它为我工作。它只是不能把日志文件写到我想要的地方。它将所有内容都放在自己的日志文件中,尽管我将-e和-l参数传递给它,路径是/var/log/myapp/…它仍然被记录到了~/.forever/.log。也许是由于permission问题阻止了-l选项出现在/var/log,请使用/tmp进行尝试,类似于[forever start you\u script.js-l/tmp/log],这应该很好用。我会试试的。它所在的框是以根目录运行的,做了一个
ps aux | grep节点
,它看起来像是以根目录运行的,所以我没有费心去做
chmod 777/var/log/myapp
,但我会的。到目前为止还不错。我已经运行这个设置一周左右了。一个问题是我的启动脚本覆盖了日志文件,但我做了一些更改,现在它同时附加到err.log和out.log。我喜欢bash。我不会说这是一个糟糕的想法,而且我也不确定这是否会有帮助,但是您已经检查了forever=>,这个模块至少做了两件重要的事情,第一,它确保您的节点脚本连续运行,第二,它保留一个单独的日志文件(对于stdout和stderr)对于你运行的每一个线程,它可能会让你有机会看到正在发生的事情。我100%准备好永远使用它,实际上在我找到这个解决方案之前,我一直在努力让它为我工作。它只是不能把日志文件写到我想要的地方。它将所有内容都放在自己的日志文件中,尽管我将-e和-l参数传递给它,路径是/var/log/myapp/…它仍然被记录到了~/.forever/.log。也许是由于permission问题阻止了-l选项出现在/var/log,请使用/tmp进行尝试,类似于[forever start you\u script.js-l/tmp/log],这应该很好用。我会试试的。它所在的框是以根目录运行的,做了一个
ps aux | grep节点
,它看起来像是以根目录运行的,所以我没有费心去做
chmod 777/var/log/myapp
,但我会的。到目前为止还不错。我已经运行这个设置一周左右了。一个问题是我的启动脚本覆盖了日志文件,但我做了一些更改,现在它同时附加到err.log和out.log。我喜欢巴什。