运行 节点红色作为启动时的 SU

Run Node Red as SU on boot

我想为我的 ModBus 服务器流程使用端口 502,但是,我只能在 运行 "sudo node-red-start"

我使用 "sudo systemctl enable nodered.service" 将其设置为 运行 作为一项服务 但是,这似乎只能作为普通用户执行。

谢谢

运行 systemctlsudo 与最终服务 运行 的用户无关。那是在服务文件中定义的。

您需要编辑 nodered.service 文件并更新 UserGroup 设置。

...
[Service]
Type=simple
# Run as normal pi user - feel free to change...
User=pi
Group=pi
WorkingDirectory=/home/pi
...

该文件应位于 /lib/systemd/system/nodered.service

@knolleary 建议的方法还有另一种方法,即允许 pi 用户打开低端口。这可以通过 运行 执行以下命令来完成:

sudo setcap 'cap_net_bind_service=+ep' `which node`

这将允许节点二进制作为任何用户绑定到低于 1024 的端口。

请注意,这可能是一个安全问题,因为它将允许 任何 用户访问 运行 NodeJS 应用然后假装是系统服务(例如SSH)