Mik*_*ike 6 production node.js express systemd digital-ocean
我想在端口80上使用node.js站点(我正在使用Digital Ocean).我使用systemd和服务文件这样做
...
ExecStart=/usr/bin/nodejs /var/www/bin/app.js
...
在localhost上,如果我使用sudo启动网站,这在端口80上工作正常,但不是没有sudo.显然,您需要以root身份运行1024以下的端口.
如何在ExecStart中允许sudo?或者我在这里完全错误的方式,如果是这样,我如何在端口80上获得快速应用程序?
干杯,迈克
Systemd ExecStart=默认情况下以root身份启动可执行文件。
但是,如果您已指定User=或Group=在您的服务文件中覆盖该默认设置,并且仍然需要运行需要执行的可执行文件,则sudo在命令前添加到您sudo所在位置的绝对路径:
...
ExecStart=/usr/bin/sudo /usr/bin/nodejs /var/www/bin/app.js
...
Systemd ExecStart=默认以root身份启动可执行文件.这意味着如果您尚未指定User =或Group=在我们的服务文件中,则您的二进制文件将启动特权.
您可以通过启动id或whoami程序来验证这一点.例如:ExecStart=/usr/bin/id或ExecStart=/usr/bin/whoami(注意程序的路径可能与您不同)