Supervisord

使用 supervisord 重定向命令輸出

  • November 16, 2016
docker -H :4000 events | ./docker_events.py

docker -H :4000 events將連續給出事件,直到我們按下Crtl+C。所以,我pipe將輸出到我的自定義腳本,該腳本docker_events.py解析返回的輸出,docker -H :4000 events然後給出它自己的輸出版本(實際上它會將 json 數據發送到redis!)

我將上面的行supervisord .conf包含在下面

[program:docker_events]
command=docker -H :4000 events | python /root/docker_events.py
autostart=true
autorestart=true
stderr_logfile=/var/log/docker_events.err.log
stdout_logfile=/var/log/docker_events.out.log

但它不能正常工作;我可以看到錯誤 docker_events.err.log

Usage:  docker events [OPTIONS]

Get real time events from the server
docker: "events" requires 0 arguments.
See 'docker events --help'.

它被|當作論據。那麼我可以解決這個問題嗎?

您使用了 shell 管道,但在您的配置文件中沒有正確處理它。我猜一個正確的命令可能是

command=bash -c "docker -H :4000 events | python /root/docker_events.py"

引用自:https://unix.stackexchange.com/questions/274416