运行 节点红色作为启动时的 SU
Run Node Red as SU on boot
我想为我的 ModBus 服务器流程使用端口 502,但是,我只能在 运行 "sudo node-red-start"
我使用 "sudo systemctl enable nodered.service" 将其设置为 运行 作为一项服务
但是,这似乎只能作为普通用户执行。
谢谢
运行 systemctl
和 sudo
与最终服务 运行 的用户无关。那是在服务文件中定义的。
您需要编辑 nodered.service
文件并更新 User
和 Group
设置。
...
[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)
我想为我的 ModBus 服务器流程使用端口 502,但是,我只能在 运行 "sudo node-red-start"
我使用 "sudo systemctl enable nodered.service" 将其设置为 运行 作为一项服务 但是,这似乎只能作为普通用户执行。
谢谢
运行 systemctl
和 sudo
与最终服务 运行 的用户无关。那是在服务文件中定义的。
您需要编辑 nodered.service
文件并更新 User
和 Group
设置。
...
[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)