«до» и «хотите» для одной и той же службы systemd?

Чтобы создать Для соответствующего Makefile нужны эти две вещи:

  • Макросы
  • Правила

Макросы - это то, что мы используем в Makefiles, чтобы сократить синтаксис и упростить редактирование файла, если что-то изменилось. Например:

C = gcc # sets the macro for the C compiler to C

Итак, $ (C) можно заменить на gcc

Правила - это то, что используется для проверки изменений файлов и их зависимостей. Всегда должно быть правило all , чтобы при запуске make сначала проверялось правило all . Как и ваша программа на C, где сначала выполняется функция main () .

Пример Makefile:

C = gcc
CFLAGS = -o
INPUT = hello
OUT = $(INPUT)

all: $(INPUT)

$(OUT): $(INPUT).c
        $(C) $(INPUT).cpp $(CFLAGS) $(OUT)

Правило можно объявить, указав его имя + точку с запятой (например, do_this: ), добавив после него любые зависимые файлы или правила (например, another_rule $ (DEPENDANDTFILE) ) ), а затем добавление команд на следующей строке после TAB.

ПРИМЕЧАНИЕ. Правила не будут работать, если в начале строки оператора не будет TAB.

8
21.03.2019, 14:39
2 ответа

Вариант использования этого двойного отношения аналогичен отношению «обеспечивает». systemd-timesyncdпредоставляет услугу синхронизации времени, поэтому она удовлетворяет любой зависимости устройства от time-sync.target. Он должен запускаться до time-sync.target, потому что он необходим для любой службы, которая зависит от синхронизации времени, и ему требуется time-sync.target, потому что любой модуль, полагающийся на синхронизацию времени, должен запускаться вместе со службой systemd-timesyncd.

Я думаю, что непонимание исходит из вашей интерпретации «хочет». Отношение «хочет» в systemd не является зависимостью :systemd-timesyncd, ему не нужно time-syncдля работы. Это отношение «начать вместе с» :, оно говорит о том, что конфигурирующий блок(systemd-timesyncd.service)хочет, чтобы перечисленные блоки(time-sync.target)запускались вместе с ним.

См. также Какой сервис предоставляет время -sync.target в systemd?

16
27.01.2020, 20:09

time-sync.target является своего рода флагом в системе, так что службы, зависящие от правильного времени, не должны зависеть от systemd -timesyncd, ntpd, чего угодно.

Запись Beforeуказывает systemd запустить systemd -timesyncd, затем time -sync.target (это просто для заказа ). Wantsсообщает ему установить флаг.

0
27.01.2020, 20:09

Теги

Похожие вопросы