Tag: 永远

这个NodeJS集群主可以崩溃吗?

我们一直在使用我们的快速应用程序,它使用cluster来产生完成所有工作的工作人员。 这意味着主人只运行这个代码: if (cluster.isMaster) { // … // … check arguments and do some initial prep // … // Create a worker for each CPU for (var i = 0; i < cpuCount; i += 1) { cluster.fork(); } // Listen for dying workers cluster.on('exit', function (worker) { if (!worker.suicide) { // Replace the dead […]

永远开始命令不工作

我正在使用以下命令来启动永久命令: /usr/local/bin/forever start /var/www/html/test.js | tee /tmp/forever-start.log 但它不起作用。 不在日志文件中打印输出。 在test.js , 我有这个代码: console.log('Server running…');

节点永远说节目正在运行,但证据显示不是

我试图运行一个简单的twitterbot使用twit库,并永远 。 机器人本质上看另一个Twitter帐户,并复制它的鸣叫一些修改。 我一直在logging从stream媒体API接收到的tweets,并logging任何错误。 然而,机器人往往停止工作,而没有logging错误,而forever list仍然显示程序正在运行。 info: Forever processes running data: uid command script forever pid id logfile uptime data: [0] QOmt /usr/bin/nodejs bot.js 13642 13649 /home/ubuntu/.forever/QOmt.log 0:5:25:34.733 起初,我认为这可能是一个叽叽喳喳stream媒体API的问题 – 即,信息已经停止发送“pipe道”,因为日志文件已经停止logging从TwitterstreamAPI的新消息。 为了validation机器人确实还在运行,我创build了一个每分钟logging一次的heartbeat 。 // Heartbeat to make sure the process is still running setInterval(function () { console.logWithDate('Program heartbeat'); }, 60*1000); 当机器人停止运作时,心跳也停止logging。 然而, forever仍然说机器人正在运行。 任何帮助将非常感激。 我发布了我的机器人的完整代码,以防万一。 […]

获取永久应用程序或pm2应用程序的状态

我目前正在使用,但正在考虑切换到pm2,因为永远不会提供状态选项。 我不能做: forever status myApp 要确定我的应用程序是否正在运行,我必须这样做: forever list | grep -i myApp 即使这样,它是不可靠的,因为myApp可能被列为停止状态(我感谢你可以拿出一些难看的grep解决scheme,以适应,但我想要的东西自然)。 随着pm2文档说,你可以这样做: pm2 show myApp # Show all informations about application pm2似乎更加自然。 任何想法如何获得应用程序状态永远使用,而不会永远列表? pm2如何比较获取应用程序状态?

Elastic Beanstalk Node.Js需要PM2或Forever

在我的本地节点服务器上,任何未捕获的exception都会失败,必须手动重新启动。 所以本地运行使用永远或pm2。 但是我的开发服务器是带有Node.Js环境的AWS Elastic Beanstalk。虽然它logging了未捕获的exception并将其抛出,但它永远不会终止。即使它终止,它也会自动启动。 那么是否需要PM2或Forever来保持node.js在AWS Elastic Beanstalk环境中永远运行。

防止开发人员无意中在本地机器上杀死守护进程/工作进程

很多newbs会用他们的本地机器杀死他们所有的node.js进程 pkill -f node 要么 killall node 等等。 我有一个使用开发者机器上运行的一些守护进程/工作的库,如果开发“意外”杀死了(所有)node.js进程,我将需要重启它们。 问题是像forever使用NPM库或supervisor 不会解决这个问题,因为他们是node.js进程以及TMK。 任何人都可以推荐一个可以在MacOS或* nix上工作的守护进程监视器/重新启动系统吗? 也许supervisord可以在MacOS和* nix上做我想做的事情? 或者也许有另一个解决这个问题的办法?

作为一个不同的用户永远在su内运行

我正在经历奇怪的行为永远,我想用来保持活着我的节点应用程序。 我想以我的普通用户lwood而不是root身份运行我的永久进程。 我需要知道如何在root模式下正常运行,但作为用户lwood 。 (这是必要的,因为,例如,作为特殊情况,新贵脚本以root身份运行。) 这些命令说明了我的问题(我在Ubuntu 12.04上, $是普通用户, #是root): $ su [type in su password] # cd /home/lwood/myapp # sudo -u lwood forever -a -l "/home/lwood/myapp/logfile.log" start app.js info: Forever processing file: app.js # forever list info: No forever processes running # exit $ forever list info: No forever processes running 所以永远成功地开始了,但没有任何进程在lwood和root之下运行! 我该如何解决这个问题?

node.js forever-monitor不使用linux上的子目录

我试图运行一个节点脚本,使用forever-monitor在子目录./host中启动其他脚本。 在Windows上这工作 var child = new (forever.Monitor)('host.js', { max: 1, silent: false, options: [], cwd:"./host" }); 在Linux上,我得到 /home/ec2-user/test/node_modules/forever-monitor/node_modules/broadway/node_modules/eventemitter2/lib/eventemitter2.js:283 throw arguments[1]; // Unhandled 'error' event ^ Error: Target script does not exist: host.js at /home/ec2-user/test/node_modules/forever-monitor/lib/forever-monitor/monitor.js:144:26 at process._tickCallback (node.js:415:13) at Function.Module.runMain (module.js:499:11) at startup (node.js:119:16) at node.js:901:3 如果我改变第一行var child = new (forever.Monitor)('./host/host.js', {我现在得到 Error: Cannot find module […]

forever.list在node.js代码中返回null

在node.js代码中不能使用forever.list方法… var forever; forever = require('forever'); forever.startServer(); forever.list("", function(result) { return console.log(result); }); …在控制台中打印null 。 虽然在forever list运行的terminalforever list ,我看到运行过程。 ❯ forever list info: Forever processes running data: uid command script forever pid logfile uptime data: [0] 1QNd /usr/local/bin/node app.js 29937 29979 /Users/user/.forever/1QNd.log 0:0:26:23.55 我想在node.js脚本中获取相同的date。 也许我用无效参数list 。 第一个参数format – 我传递空string,因为不知道要传递什么。

NODE JS – 永远的开始path问题

我有一个server.js文件定义如下: var iniparser = require('iniparser'); var inihost; var inidbuser; var inidbpass; var inidbname; var config = iniparser.parseSync('../setup_db/config.ini'); inihost = config.db_hostname; inidbuser=config.db_username; inidbpass=config.db_password; inidbname=config.db_name; ….. 在重新启动我有一个应该自动永久启动服务器的crontab: @reboot /usr/bin/sudo /usr/local/bin/forever start /var/www/html/rubrica/chat/server.js 有趣的是,如果我从任何目录启动服务器的完整path,如: forever start /var/www/html/rubrica/chat/server.js 服务器启动就好..但是,我运行SAME命令从/root/.forever/目录服务器将给我以下错误: ENOENT, no such file or directory '../setup_db/config.ini' 所以,每当我重新启动机器,我得到这个错误…怎么可能这样的事情?