Системные блоки: [Install] против команды: start (cloud-config)

Я настраиваю systemd в файле конфигурации облака для CoreOS. Если я правильно понимаю, у меня есть два способа запуска устройства при загрузке:

Альтернатива 1, используйте [Install] -раздел (как описано в цифровых руководствах по океанам):

- name: initialize_data
  content: |
    [Unit]
    Description=Run a command

    [Service]
    Type=oneshot
    ExecStart=/usr/bin/mkdir /foo

    [Install]
    WantedBy=multi-user.target

Альтернатива 2, бросьте [Install] -раздел и использование command: start:

- name: initialize_data
  command: start
  content: |
    [Unit]
    Description=Run a command

    [Service]
    Type=oneshot
    ExecStart=/usr/bin/mkdir /foo

Есть ли недостатки при запуске устройства с помощью command: start? Я понял, что не могу контролировать, с какого юнита он будет запускаться, но что-нибудь еще? Будет ли это честь [Unit] Директивы, такие как Requires= а также After=?

1 ответ

Решение

Похоже, на CoreOS есть небольшая разница. Когда systemd используется в других дистрибутивах Linux, различие заключается в том, что start только запускает службу, она не вызывает ее при загрузке. Это то что enable делает, обрабатывая [Install] раздел системного файла.

Тем не менее, документы CoreOS говорят, что cloud-config Команды обрабатываются при каждой загрузке. Таким образом, указав услугу start через cloud-config, сервис, по сути, также включен.

CoreOS, вероятно, включает в себя оба варианта, чтобы дать вам полную гибкость доступа к обоим systemd функции.

Другие вопросы по тегам