2015-10-01 1 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, я изменил его, чтобы у меня был доступ к корню. Когда моя виртуальная машина запускается, он выполняет сценарий, но я не могу получить доступ к веб-сайт, когда я SSH в экземпляр и введите

sudo node app.js 

однако, все работает. У вас не могут быть команды sudo в сценарии запуска?

+0

Почему 'supervisord' не работает как root? Какой пользователь * * работает? Это тот же пользователь, которого вы использовали при успешном запуске 'sudo node app.js'? У вашей конфигурации 'sudo' есть опция' requiretty'? – larsks

+0

Как я могу управлять суперсобой как root? Что такое вариант requiretty? Это код из учебника «deploy nodejs app on google compute engine». Я не понимаю этого полностью. – Rockstar5645

+0

Должен ли я добавить весь сценарий запуска? – Rockstar5645

ответ

0

Если вы работаете в узел, как root в любом случае (что эффект от использования sudo), вы можете также установить user=root (или удалить, что установка полностью) и сохранить оригинальный command.