2015-10-01 83 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

相關問題