start(port) {

    this._port = port || 3000;

    console.log(`[${this.name}.Daemon] Startup: Initializing`);

    if ((process.env.NODE_ENV || 'development') === 'development') {

      this.watch('', (changes) => {
        changes.forEach(change => {
          console.log(`[${this.name}.Daemon] ${change.event[0].toUpperCase()}${change.event.substr(1)}: ${change.path}`);
        });
        this.children.forEach(child => child.send({invalidate: true}));
        this.children = [];
        !this.children.length && this.unwatch() && this.start();
      });

    }

    this._server && this._server.close();
    this._server = null;

    for (var i = 0; i < this.cpus; i++) {

      let child = cluster.fork();
      this.children.push(child);

      child.on('message', this.message.bind(this));
      child.on('exit', this.exit.bind(this, child));

    }

    console.log(`[${this.name}.Daemon] Startup: Spawning HTTP Workers`);

  }
Starts the Daemon. If all application services fail, will launch a
  dummy error app on the port provided.
@param {Number} port