2015-10-01 48 views
2

工作这是启动脚本对我的计算引擎实例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命令?

+0

为什么'supervisord'不能以root身份运行?什么用户*是*它运行?这是你成功运行'sudo node app.js'时使用的用户吗?你的'sudo'配置是否设置了'requiretty'选项? – larsks

+0

我如何以root身份运行supervisord?什么是requiretty选项?这是来自“Google计算引擎上的deploy nodejs应用程序”教程的代码。我完全不理解它。 – Rockstar5645

+0

我应该添加整个启动脚本吗? – Rockstar5645

回答

0

如果您正在运行节点为root无论如何(这是使用sudo的效果),您不妨设置user=root(或删除完全设置),并保持原有的command

相关问题