sudo命令在启动脚本中不起作用

时间:2015-10-01 17:04:20

标签: linux node.js debian google-compute-engine 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到实例并输入

sudo node app.js
然而,一切正常。你不能在启动脚本中有sudo命令吗?

2 个答案:

答案 0 :(得分:1)

首先,您需要grant sudo accessnodeapp用户。

答案 1 :(得分:0)

如果您仍然以root运行节点(这是使用sudo的效果),您也可以设置user=root(或完全删除该设置)并保留原始设置command