我正在尝试在端口 80 上运行一个 node.js 站点(我正在使用 Digital Ocean)。我在服务文件中使用 systemd 执行此操作
...
ExecStart=/usr/bin/nodejs /var/www/bin/app.js
...
在本地主机上,如果我使用 sudo 启动站点,这在端口 80 上工作正常,但在没有 sudo 的情况下。显然你需要以 root 身份运行低于 1024 的端口。
如何在 ExecStart 中启用 sudo?或者我在这里完全走错了路,如果是这样,我如何在端口 80 上获取 express 应用程序?
干杯,迈克
最佳答案
Systemd 默认以 root 身份启动 ExecStart=
中声明的可执行文件。
但是,如果您在服务文件中指定了 User=
或 Group=
覆盖默认值,并且仍然需要运行需要 sudo
,在命令前加上您的 sudo
位置的绝对路径:
...
ExecStart=/usr/bin/sudo /usr/bin/nodejs /var/www/bin/app.js
...
关于node.js - 将 sudo 与 ExecStart (systemd) 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36959877/