Я попробовал исправить здесь: systemd не перезапускает мой процесс и это не сработало для меня.
У меня есть экспортер Кафки для Прометея. У меня на том же компьютере запущен Kafka. Когда я останавливаю Kafka, экспортер Kakfa умирает (это зависит от возможности общаться с процессами Kafka). Я хотел бы, чтобы экспортер автоматически перезапускался после повторного запуска Kafka, но это не работает.
Вот мой файл systemd ниже. Я пробовал здесь разные вещи. Что я могу сделать, чтобы обеспечить запуск экспортера Kafka после окончательного перезапуска / восстановления Kafka?
[Unit]
Requires=kafka.service
After=kafka.service
[Service]
Type=simple
User=kafka
# give kafka time to start up first
ExecStartPre=/bin/sleep 15
ExecStart=/opt/kafka_exporter/kafka_exporter --kafka.server=localhost:9092
Restart=always
RestartSec=30
StartLimitInterval=0s
[Install]
WantedBy=multi-user.target
Вы можете попробовать PartOf? Из руководства:
PartOf= Configures dependencies similar to Requires=, but limited to stopping and restarting of units. When systemd stops or restarts the units listed here, the action is propagated to this unit. Note that this is a one-way dependency — changes to this unit do not affect the listed units.
В этом случае устройство должно быть таким, как показано ниже.
[Unit]
After=kafka.service
Requires=kafka.service
PartOf=kafka.service