2017-05-26 179 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

相關問題