Sua unidade B está usando BindsTo=
, que é destinado a rastrear o estado de uma unidade que pode desaparecer .
O que você quer disso é PartOf=
, onde esse serviço rastreará exatamente o status do serviço nomeado. Na documentação :
PartOf=
Configures dependencies similar toRequires=
, 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.
Eu não acho que isso consertará todos seus problemas, no entanto. Eu suspeito que você não tenha considerado cuidadosamente as dependências reais entre seus dois serviços, e precisará pensar um pouco mais (e ser capaz de se expressar) antes de fazer com que essas unidades façam o que precisam fazer.