Модули Systemd: [Install] vs. command: start (cloud-config)

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

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

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

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

    [Install]
    WantedBy=multi-user.target

Альтернатива 2, отбросьте раздел [Install] и используйте команду : start :

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

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

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

1
задан 15 March 2017 в 17:47
1 ответ

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

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

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

0
ответ дан 4 December 2019 в 05:07

Теги

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