LearnBoost / cluster

Node.JS multi-core server manager with plugins support.

Home Page:http://learnboost.github.com/cluster

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Non-HTTP server loaded from file

SebastianEdwards opened this issue · comments

All the examples of non-HTTP/TCP servers seem to all be within self-contained files. I wanted to start these workers from a file however passing in a file path seems to cause cluster to automatically treat it as a HTTP server or similar and tries to call the 'on' and 'listenFD.bind' methods on it. Commenting out the section of code in worker.js seems to allow this to work as I would expect.

Perhaps cluster could check whether 'on' and 'listenFD.bind' methods exist before trying to call them?

app.js

setInterval(function(){
   console.log("I'm alive");
}, 2000);

server.js

var cluster = require('cluster');

var proc = cluster('./app')
  .set('workers', 4)
  .use(cluster.debug())
  .start();

Code in worker.js causing issue

// demote usr/group
  if (this.server) {
    this.server.on('listening', function(){
      var group = self.options.group;
      if (group) process.setgid(group);
      var user = self.options.user;
      if (user) process.setuid(user);
    });

    // stdin
    this.stdin.on('fd', this.server.listenFD.bind(this.server));
  }

thanks for the report