How to set up dependencies between two different user scope services in systemd?

Viewed 47

I am using systemd to run Podman containers as services:

  • Kafka via kafka user and managing service via: systemctl start/stop --user kafka.service
  • Zookeeper via zookeeper user and managing service via: systemctl start/stop --user zookeeper.service

Files reside in locations:

  • Kafka: /home/kafka/.config/systemd/user/podman-kafka-pod.service,
  • Zookeeper: /home/zookeeper/.config/systemd/user/podman-zookeeper-pod.service.

Both are separate, user-scoped systemd services. What I'd like to achieve to set up dependency to Zookeeper from Kafka: restart/start Zookeeper when Kafka is restarted/started. I am not sure if it's possible to define such relations between user-scoped services.

I tried adding:

Requires=podman-zookeeper-pod.service
Before=podman-zookeeper-pod.service

To Kafka service, but it fails with the following error:

$ systemctl restart --user podman-kafka-pod
Failed to restart podman-kafka-pod.service: Unit podman-zookeeper-pod.service not found.

Fair enough, because I cannot list Zookeeper service from Kafka user and vice-versa, it's expected I think.

Is it possible to set up dependencies between services being run by different users in systemd?

I could not find the answer on SO or in the documentation. Thanks in advance for a reply.

0 Answers
Related