我在 CoreOS 的云配置文件中配置 systemd。如果我理解正确的话,我有两种在启动时启动单元的方法:
备选方案 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]
-section 并使用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=
在 CoreOS 上似乎没有什么区别。在其他 Linux 发行版上使用 systemd 时,区别在于
start
仅启动服务,不会导致它在 boot 时启动。这就是enable
通过处理[Install]
systemd 文件的部分来实现的。但是,CoreOS 文档说这些
cloud-config
命令在每次启动时都会处理。因此,通过将服务指定为start
throughcloud-config
,该服务基本上也已启用。CoreOS 可能包含这两个选项,让您可以充分灵活地访问这两个
systemd
功能。