Системные блоки: [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 функции.