Хорошо, прежде всего, я хочу добиться, чтобы служба systemd не собирала мусор, если она остановлена и не включена по умолчанию. Мне это нужно из-за текущей проблемы с экспортером узлов из Prometheus для целей мониторинга.
Я уже достиг своей цели, но я не уверен, почему она работает и возможны ли побочные эффекты.
Так, в качестве примера, я установил ntp на свою Ubuntu 18.03, отключил службуи остановил это. Теперь я хотел, чтобы мой экспортер узлов показал мне, что ntp.service неактивен, но сборщик мусора ntp get собирается systemd. Я читал, что это можно предотвратить, используя в этом случае ntp в качестве зависимости. Использование Wants=
не помогает, так как это приведет к перезапуску моего ntp, если перезапустится моя зависимая служба. Поэтому я немного поэкспериментировал и создал файл test.target примерно так:
#/etc/systemd/system/test.target
[Unit]
Description=Testing purpose
After=ntp.service
[Install]
WantedBy=Multi-user.target
Я включил службу, запустил ее с отключенным ntp и остановил. Теперь это мой актуальный вопрос. Мой файл test.target включается и запускается без проблем, даже если ntp.service не запущен. Интересно, что он также делает то, что я хочу, ntp не собирает мусор, даже если он отключен и остановлен.
Так что я действительно хотел бы знать, почему это работает, почему After=
get игнорируется?