2017-05-26 2423 views
0

启动supervisord与非root用户有问题。 我有一个新鲜的debian jessie系统(码头图片)。非root用户启动supervisor

  • 我安装supervisord apt-get install supervisor
  • 我创建了一个新的用户useradd lily
  • 切换到该用户su lily
  • 开始supervisord supervisord -n

在这一步,我得到一个错误/var/log/supervisor/supervisor.log (Persimission error)

我可以chmod这个日志f ILE所以百合将有机会,但我这样做(chmod 777 -R /var/log/supervisor/) 并与百合的用户运行后supervisord supervisord -n我得到这个错误:

Error: Cannot open an HTTP server: socket.error reported errno.EACCES (13) 

而且我很卡设法解决这个问题。 我在openshift环境中进行部署,因此我将拥有root访问权限来设置环境,但启动supervisord时我将无法访问root。在我的情况下,它必须由普通用户启动。

+0

指定的用户?这与容器周围的哲学有些相反,每个容器只运行一个应用程序。你不能简单地运行应用程序并让OpenShift管理容器吗? –

+0

@GrahamDumpleton我第二 –

+0

我正在启动一个需要apache2和php-fpm运行的PHP应用程序。 所以我使用主管来启动和监视这两个过程。 – Tomas

回答

0

如前所述here

你需要指定它应该使用什么样的用户帐户,运行后台进程的根,但你为什么要使用反正supervisord在配置文件中

[program:myprogram] 
command=gunicorn --worker-class socketio.sgunicorn.GeventSocketIOWorker app.wsgi:application -b 127.0.0.1:8000 
directory=/opt/myprogram 
user=user1 
autostart=true 
autorestart=true 
redirect_stderr=True 
+0

我无法以root身份运行守护进程 – Tomas

相关问题