【发布时间】:2017-04-13 10:37:40
【问题描述】:
我尝试在centos7上创建systemd服务:
[Unit]
Description=Node.js Weeki Server
Requires=After=mongod.service
[Service]
ExecStart=/usr/bin/node /var/node/myapp/bin/www
Restart=always
StandardOutput=syslog # Output to syslog
StandardError=syslog # Output to syslog
SyslogIdentifier=nodejs-weeki
User=weeki
Environment=NODE_ENV=production PORT=80
[Install]
WantedBy=multi-user.target
当我使用8080端口时服务启动成功,但是当我将端口更改为80时,服务启动失败。 我尝试使用以下命令打开防火墙:
firewall-cmd --zone=public --add-port=80/tcp --permanent
但还是不行。
【问题讨论】:
-
好吧,要么您没有绑定到该端口的权限,要么它已被其他服务使用。
-
我是 root,当我运行节点服务器而不是从端口 80 上的服务时,它的工作..
-
所以剩下我命名的另一个选项,不是吗?或者
root没有有权限绑定到那个端口,如果使用 SELinux 扩展可能就是这种情况。 -
我会说首先找出另一个服务是否已经在使用该端口。通过查明该系统是否使用 SELinux 扩展。另一种简单的方法是查看日志文件。如果您手动启动该服务,我希望这些日志文件甚至会被提及。 你调查过这些吗?他们说什么?
-
在您对我提到的其他方面做出反应之前,没有进一步的评论。
标签: node.js linux centos7 systemd