Tag: linux

在用npm安装后找不到命令

预先感谢您看我的文章! 主要问题: 当我从命令行调用它时,我需要做些什么来获取http-server? 我觉得这个问题已经显示出我的linux无能。 如果我想从头开始使用node和home brew,那么在继续之前,我需要删除哪些文件和目录(或者确保它们已经被卸载命令删除)? 提前致谢! 背景 之后我想我已经修复了家庭冲煮(OS X 10.10使用了更新版本的Ruby),我试图在收到消息-bash: http-server: command not found后,尝试用npm重新安装http-server。 所以我运行sudo npm install -g http-server 。 然后我得到一个包含npm http GET https://registry/npmjs.org/和npm http 304 https://registry/npmjs.org/ 。 后面是~.node/bin/http-server -> ~.node/lib/node_modules/http-server/bin/http-server' and 'http-server@0.7.3 ~.node/lib/node_modules/http-server 。 笔记 我发现这个/usr/local/bin/http-server@ ,我相信这是http-server的符号链接。 看来,链接http-server -> ../lib/node_modules/http-server/bin/http-server不存在,我不明白为什么。 文件夹/usr/local/lib/node_modules/http-server确实有0.6.1和0.7.3 目录0.7.3只有一个package目录,后面跟着一个package.json文件。 我很困惑,因为我期望这不仅仅包含一个package.json。 我相信brew是正确安装的,因为which brew会提供/usr/local/bin/brew 另外,我得到了brew -v Homebrew 0.9.5 which npm给出/usr/local/bin/npm (节点也是这样) npm […]

tshark:特定输出端口的http事务信息

我试图在与另一个服务交谈时debugging节点中的ETIMEDOUT问题。 我的设置是1台服务器运行节点应用程序,它使用模块dockerode来检查容器。 1个运行docker的服务器。 stack: Error: connect ETIMEDOUT at errnoException (net.js:901:11) at Object.afterConnect [as oncomplete] (net.js:892:19) 我想弄清楚为什么会发生这种情况。 我读了一下tshark,似乎有我想要的数据。 我目前正在使用这个: sudo tshark -i eth0来获取我的信息。 示例输出: 17 0.005451 10.0.1.10 -> 10.0.1.219 TCP 66 58321 > 4242 [ACK] Seq=146 Ack=2121 Win=31232 Len=0 TSval=431658268 TSecr=799817403 18 0.006179 10.0.1.10 -> 10.0.1.219 TCP 66 58321 > 4242 [FIN, ACK] Seq=146 Ack=2121 Win=31232 […]

使用具有节点webapp的虚拟主机的logging器

我有一些低stream量的网站,我试图设置一个简单的方法,将独立节点应用程序转换成可以通过使用vhost在单台机器上为多个域提供服务的主应用程序require()东西。 这很有用,因为如果我不需要破解它,我可以轻松地将这些应用程序拆分回专门的部署。 我注意到,当我有两个应用程序都使用morgan做logging,只有第二个虚拟主机应用程序注册产生logging器输出。 我想我知道发生了什么事情,但弄清楚这一点并没有什么坏处。 由于这两个虚拟应用程序添加logging器作为中间件,我的猜测是,第一个应用程序绑定到标准输出,第二个应用程序,所以现在还不是很清楚第一个会发生什么,但可以肯定的是没有真正的机制来处理这种情况。 我希望有一种解决办法,就是从各个应用程序中取出日志logging,并将一个logging器放在vhost条目的前面(这有效地将我的完整应用程序转换为中间件),这样我仍然可以看到所有点击我的服务器上。 但是,这样做会阻止我能够做这样的事情,例如不logging这些应用程序中的特定应用程序中由静态中间件处理的任何请求。

在linux上使用mongoose更新JSONtypes字段中的特定字段

我试图更新jsontypes字段内的特定值。 我的文档模式看起来像这样: character { name: {type: string}, experience: {type: json} … } 我确信经验总是包含一个带有2个字段的json对象: { unspent: number, total: number } 我试图做一个通用的更新方法,并在正常工作的Windows: 'update': function (itemid, update, callback) { model.update({'id': itemid}, update, {multi: false}, callback); } 更新得到一个req.body.fields对象,这是一个json对象,包含我想更新的'fields',例如 {'experience.total': 5} 这工作正常,当我在我的Windows开发框上运行它。 当我在我的linux登台服务器上尝试它时,mongoose似乎没有拿起它需要更新的东西。 我没有更新其他领域的问题(如我的例子中的“名称”) 谢谢!

当使用su执行一个节点程序时,权限被拒绝

这里是我的节点程序 var fs = require('fs'); fs.writeFileSync('./data.txt', 'test'); 它在/ home / test /中,testing目录的权限是rwxrwxrwx。 当我运行与tomcat帐户节点test.js,data.txt可以创build。 但是当我运行一个服务来执行su tomcat -c'node /home/test/test.js'时,无法创builddata.txt,并且在stdout中存在权限被拒绝的提示。 sudo service test 这里是我在/etc/init.d中的服务 su tomcat -c 'node /home/test/test.js' 谁能告诉我为什么

无法通过networking连接到蚊子

我在Linux上安装了带有websokets支持的最新的Mosquitto MQTT代理,并且编辑configuration文件来为websocket添加一个监听器。 我将这些行添加到configuration文件中: listener 1883 protocol mqtt listener 1884 protocol websockets 当我跑步 sudo /usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf 代理启动,控制台中的其中一行显示 Opening websockets listen socket on port 1884. 并没有进一步的错误。 我认为websocket的听众应该已经开始运行了。 当我用Node.js中的mqtt.jstesting代理时,mqtt运行良好,但是我无法通过websocket连接到代理。 JS代码: var wsClient = mqtt.connect('ws://my.server.address:1884') wsClient.on('connect', function(){ console.log('ws connected') }) wsClient.on('error', function(err) { console.log(err) }) 运行JS代码后,我看到没有错误或连接的消息。 经纪人也没有显示任何关于ws连接的消息。 奇怪的是,我把这个工作全部用在另一个Ubuntu系统上,但是在这个系统上,只有一个Red Hat系统,只有mqtt连接正在工作,ws似乎没有工作,但是两边都没有显示错误。 什么可能导致这个问题? 谢谢。 UPDATE 我试图在代理服务器上运行该程序,使用ws://127.0.0.1:1884作为目标,并将其连接。 但从远程机器,说我的笔记本电脑或其他服务器,websokcets仍然无法正常工作。

杀死一个node.js程序而不杀死subprocess

我有一个node.js程序已经启动了多个subprocess。 我希望能够testing一下,如果节点崩溃但是让它们继续运行,这些subprocess会发生什么。 我尝试了以下内容: process.on('SIGUSR1', function(){ process.exit(0); }); 这对我的testing设置非常有效,当我运行以下命令时,subprocess保持正常运行,Node实例closures: killall -10 node 但是,对于我的生产部署来说,让我感到意外的是,没有把孩子的stream程留下来。 我感兴趣的主要subprocess是铬浏览器的一个实例。 差异似乎是过程开始的方式。 在我的testing设置中,我直接调用节点,但是在我的生产环境中,我调用了一个调用的脚本。 我想find的是上面的匿名callback函数内部的一种方法,它处理SIGUSR1信号,告诉节点不要closures自己的subprocess。 我知道我可以分离我创build的stream程,但是我宁愿做一些不太重要的事情(尽pipe我们承认,这并不太涉及)。 我在Ubuntu 12.04上运行节点0.8.21。 感谢您的任何想法,你可以扔我的路。

套接字 – 活动套接字的最大限制

我用ws (一个套接字库)来处理套接字使用node.js。 我读过这个链接 ,声称任何VPS机器可以有多达64K客户端端口。 现在的问题是,我的Linux VPS上有多less个活动套接字? 有一个理论的限制,一个Linux VPS可以处理多less个开放的套接字? 瓶颈是什么? 是RAM吗? 或带宽?

Node.js:在同一目录下发送文件

我希望这个问题不是太可笑。 var app = require('express')(); var http = require('http').Server(app); app.get('/', function(req,res){ res.sendFile('index.html'); }); http.listen(3000,function(){ console.log('/','listening on *:3000'); }); 我正在运行Linux mint,并且每当我尝试在本地运行时,我得到以下错误: 错误:ENOENT,stat'index.html'错误(本机) 我相信这跟目录有关。 index.html文件与index.js文件位于同一文件夹中。 我已经找遍了,在这种情况下找不到这个确切的错误,所以有点困惑。 我是否把错误的目录放在了 app.get('/', function(req,res){ res.sendFile('index.html'); });

如何获得多核系统的CPU使用率

如何知道多核系统的CPU占用率。 我尝试使用os npm下面的示例代码,但它不会返回结果我实际上正在查看它。 我期待着类似于linux的命令。 任何帮助,这将是有益的。 setInterval(function() { os.cpuUsage(function(v){ console.log( 'CPU Usage (%): ' + v ); }); }, 1000 );