【问题标题】:How to use forever-node with sudo command?如何通过 sudo 命令使用永远节点?
【发布时间】:2013-08-06 12:21:10
【问题描述】:

我有一个用 Java 脚本 node.js 编写的 flash-cross-domain-policy 服务器:

var net = require("net");

var flashPolicyServer = net.createServer(function (stream) {
  stream.setTimeout(0);
  stream.setEncoding("utf8");

  stream.addListener("connect", function () {   
  });

  stream.addListener("data", function (data) {
    if ( data.indexOf('<policy-file-request/>') != -1){
                stream.write('<cross-domain-policy><allow-access-from domain="*" to-ports="*" /></cross-domain-policy>');
    } 
    stream.end();
  });

  stream.addListener("end", function() {
    stream.end();
  });
});

flashPolicyServer.listen(843);

我相信 843 端口一定是一种特殊的端口,因为我只能使用 sudo node server.js 来运行这个服务器。它运行得很漂亮。但我需要永远在模块中运行它才能变得更可靠。

如何执行它.. 例如。 sudo forever start server.js?

【问题讨论】:

  • 是的,843 是 init.d 脚本中启动它。这与 SO 无关,可能属于 Server Fault

标签: javascript linux node.js sudo forever


【解决方案1】:

sudo forever start server.js 应该可以工作。

或者,

>>> sudo su
>>> cd /folder/of/script
>>> forever start server.js

【讨论】:

  • 请注意,使用 sudo 永久运行和以超级用户 (sudo su) 永久运行将产生不同的结果,因为永久会将 pid 存储在不同的主目录中。尝试以 sudo 和超级用户 (sudo su) 的身份运行“forever config”以查看配置中的差异。
【解决方案2】:
forever start -c 'sudo node' server.js

在本地使用永久安装而不是全局安装 (npm install -g) 时,作为 npm 脚本为我工作。

【讨论】:

    猜你喜欢
    • 2016-09-07
    • 2017-05-15
    • 2017-12-04
    • 2015-09-05
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    相关资源
    最近更新 更多