Как запустить Java-программу, которая была завернута в Python в Redhat Services - PullRequest
0 голосов
/ 03 июля 2019

У меня есть программа на Python, которая является оберткой для Java-программы.Эта программа на Python выполняет программу Java.Когда я запускаю эту программу на Python, она работает нормально, но когда я запускаю ее в качестве службы Red Hat, она пропускает Java-программу и просто запускает программу Python.Когда он должен запустить программу Java, он просто печатает 0 в терминале.потому что сервисы Redhat не запускают другой pid в режиме демона?Пожалуйста, помогите мне

Это служебный код Redhat, который запускает /www/StartValidator.sh

[Unit]
Description=Message Broker Service
[Service]
Type=Simple
User=mbobbili
ExecStart=/bin/bash /www/StartValidator.sh
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target

1 Ответ

0 голосов
/ 03 июля 2019

Это не что-то особенное в RedHat. Это часть обычного файла службы systemd ... Кроме того, я не вижу здесь ничего специфического для Celery и Python, поскольку ваша служба systemd запускает скрипт BASH ...

Если /www/StartValidator.sh запускает рабочего Celery случайно, тогда я настоятельно рекомендую вам прочитать раздел Daemonization в документации Celery.

Поскольку мне неясно, что вы подразумеваете под " не запускает другой pid в режиме демона ", я предполагаю, что у вас возникла "типичная" проблема - когда вы снова запускаете Celery Worker (либо вручную, либо через службу systemd), если он указывает на тот же файл PID, и в существующем файле есть активный процесс с PID, то он откажется запускаться, потому что у вас уже работает рабочий Celery. Просто остановите существующий процесс, и тогда все будет работать.

...