这是我的计算引擎实例的启动脚本的一部分
# 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到实例并输入
sudo node app.js
然而,一切正常。你不能在启动脚本中有sudo命令吗?
答案 0 :(得分:1)
首先,您需要grant sudo access到nodeapp
用户。
答案 1 :(得分:0)
如果您仍然以root
运行节点(这是使用sudo
的效果),您也可以设置user=root
(或完全删除该设置)并保留原始设置command
。