我尝试通过使用 Node 运行 .js 文件来在 RHEL 上运行 Nodejs 服务器,但遇到了无法绑定到的问题端口80,更改为更高的端口修复了此问题,但我无法从外部访问它,导致我假设传入请求被 阻止firewalld
。解锁特定端口似乎不是一个优雅的解决方案,因此我研究了如何设置 NodeJS 服务器作为可以注册的 systemd 服务运行firewalld
。
我创建了一个webserver.service
文件和一个用户httpserver
作为系统帐户来运行该服务,但在尝试实际运行它后遇到了问题。
systemctl daemon-reload
systemctl start webserver
Failed to start webserver.service: Unit webserver.service not found.
我见过其他与 SELinux 有关的问题,但我setenforce permissive
在重试和尝试之前chcon system_u:object_r:systemd_unit_file_t:s0
都尝试过webserver.service
,但都没有成功。
以下是 的内容/etc/systemd/user/webserver.service
:
[Unit]
Description=test service for server
After=network.target
[Service]
Type=simple
User=httpserver
ExecStart=/usr/bin/node /home/user/ ... /index.js
Restart=on-failure
[Install]
WantedBy=multi-user.target