这是我的计算引擎实例的启动脚本的一部分
# 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
。