Усаживайтесь поудобнее детишки, сейчас дядя Кирк расскажет вам сказку. Как вы думаете, что делает опция Requires= в юнит-файле systemd? Думаете она определяет жесткую зависимость одного сервиса от другого, загружая их в правильном порядке? О нет, детишки, вы жестоко ошибаетесь:
Note that requirement dependencies do not influence the order in which services are started or stopped.
Именно так, для определения порядка нужно использовать After=. И вот я сижу и пытаюсь представить, какой извращенный use-case пришел этим людям в их гойловы и кто вообще выпустил разработчиков из зоопарка.