вопрос

Супервизору не удается запустить приложение Java. Вызовите supervisorctl status, чтобы просмотреть процесс и обнаружить сообщение об ошибке
Can't find command ‘java’.

Но я могу напрямую использовать java локально. Это показывает, что локальная переменная среды Java также в порядке. Есть подозрение, что операционная среда супервайзера отличается. Наконец, я проверил документ и обнаружил, что это действительно было вызвано различными переменными среды. Переменные среды, используемые супервизором, основаны на переменных среды, установленных в supervisor.conf.

решать

Измените конфигурацию проекта супервизора.

Первоначальная конфигурация:

command=java -jar account.jar

Измененная конфигурация:

command=/bin/bash -c 'source "$0" && exec "$@"' /etc/profile java -jar account.jar

пример:

[program:bam-sms]
directory=/app/services/service
command=/etc/profile java -jar /app/services/service/bam-sms-service-1.0.0.jar
autostart=true
autorestart=true

stdout_logfile=/app/services/service/log.log 
stdout_logfile_maxbytes = 20MB

Измененная конфигурация:

[program:bam-sms]
directory=/app/services/service
command=/bin/bash -c 'source "$0" && exec "$@"' /etc/profile java -jar /app/services/service/bam-sms-service-1.0.0.jar
autostart=true
autorestart=true

stdout_logfile=/app/services/service/log.log 
stdout_logfile_maxbytes = 20MB

Кроме того, обратите внимание на перезагрузку файла конфигурации после изменения конфигурации.

supervisorctl reload

Посмотреть статус службы

supervisorctl status

Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .

Заинтересованы в масштабировании запуска вашего программного обеспечения? Ознакомьтесь с разделом Схема.