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