sudo命令不能在启动脚本中工作

这是我的计算引擎实例的启动脚本的一部分

# Configure supervisor to run the node app. cat >/etc/supervisor/conf.d/node-app.conf << EOF [program:nodeapp] directory=/opt/app command=sudo node app.js autostart=true autorestart=true user=nodeapp environment=HOME="/home/nodeapp",USER="nodeapp",NODE_ENV="production" stdout_logfile=syslog stderr_logfile=syslog EOF 

如果你注意到这一行

 command=sudo node app.js 

原来它只是

 command=node app.js 

但是由于我的应用程序正在侦听端口80,所以我对其进行了修改,以便可以拥有root权限。 当我的虚拟机启动时,它执行脚本,但我不能访问我的网站,当我SSH进入实例和types

 sudo node app.js 

然而,一切正常。 启动脚本中不能有sudo命令?

首先,您必须授予对nodeapp用户的sudo访问权限 。

如果你以root身份运行Node(这是使用sudo的效果),你也可以设置user=root (或者完全移除该设置)并保留原始command