【问题标题】:Nodejs and raw-socket packageNodejs 和 raw-socket 包
【发布时间】:2018-01-24 15:33:01
【问题描述】:

我有一个 nodejs 应用程序,它应该在我打开机器时启动(我使用的是 Linux Ubuntu 16.04,所以我将它放在 rc.local 中)。我的应用程序使用 raw-socket 包。

由于我的应用程序无法以 root 身份运行,因此我在 rc.local 中设置:

sudo -u myuser node myapp.js &

当我的应用程序调用“new raw-socket”时,出现错误:

Operation not permitted.

我尝试了不同的方法,例如“setcap”,但它们对我不起作用。

此外,如果我在加载操作系统后尝试运行我的应用程序,该应用程序可以完美运行,没有任何问题......

我是否应该在 rc.local 中添加一些内容....我错过了什么吗?

【问题讨论】:

  • 也许 Node.js 运行时假设某些核心进程在启动时尚未初始化时正在运行?
  • 什么意思?
  • 这只是一个猜测。在您edit 您的问题包括错误日志的实际堆栈跟踪以及您的myapp.js 文件的相关部分之前,很难说发生了什么。
  • 不幸的是 myapp 非常庞大和复杂...我不明白为什么当系统启动时它可以完美运行...我也尝试将 myuser 设置为 root(使用 visudo)但它总是崩溃
  • 当系统已经启动后,是否必须以root身份运行才能运行?

标签: node.js raw-sockets


【解决方案1】:

node-raw-socket 需要 root 访问权限才能创建其原始套接字。

你将不得不运行

sudo node myapp.js

【讨论】:

    猜你喜欢
    • 2012-12-14
    • 1970-01-01
    • 1970-01-01
    • 2018-06-24
    • 2019-05-08
    • 2018-03-19
    • 2018-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多