Я установил td-agent, и они предоставляют сценарий init.d, с которым вы можете его запустить, я настроил td-agent, и я запускаю его через сценарий init.d, и он работает без сбоев, но я хочу переместить td-agent Чтобы работать под управлением Supervisor, я перечитал и обновил supervisor, и моя конфигурация fluentd выглядит так.
[program:fluentd]
command=/etc/init.d/td-agent start
stopasgroup=true
stopsignal=QUIT
но когда я запускаю эту программу sudo supervisortctl start fluentd
Я получил эту ошибку.
$ sudo supervisorctl restart fluentd
fluentd: ERROR (spawn error)
и журнал программы супервизора
/tmp/fluentd-stdout---supervisor-Sdy05R.log <==
Starting td-agent: * td-agent
Starting td-agent: * td-agent
Starting td-agent: * td-agent
$ sudo supervisorctl status fluentd
fluentd FATAL Exited too quickly (process log may have details)
но когда я ищу, есть ли какой-либо процесс, работающий с td-agent, я нашел это
$ sudo ps aux | grep td-agent
td-agent 16594 0.0 0.0 127080 20860 ? Sl 09:49 0:00 /opt/td-agent/embedded/bin/ruby /usr/sbin/td-agent --log /var/log/td-agent/td-agent.log --daemon /var/run/td-agent/td-agent.pid
td-agent 16599 1.0 0.0 139560 29508 ? Sl 09:49 0:01 /opt/td-agent/embedded/bin/ruby -Eascii-8bit:ascii-8bit /usr/sbin/td-agent --log /var/log/td-agent/td-agent.log --daemon /var/run/td-agent/td-agent.pid --under-supervisor
Итак, я понял, что Supervisor запускает программу fluentd
но сценарий init.d порождает свой собственный процесс и не уведомляет супервизора о новом процессе, так что в глазах супервизора, что этот сценарий init.d был прерван?
Есть решения для этого?