除非存在控制文件,否则不要启动 systemctl 服务(如 Docker)

除非存在控制文件,否则不要启动 systemctl 服务(如 Docker)

我想设置 Docker 的配置,以便在启动时它不会自动启动容器。

我已经阅读了有关使用 systemctl 禁用该服务的信息,这需要在下次启动时手动启用它。

话虽如此,如果我可以为 Docker 配置 systemd 服务以等待某个文件在某个位置出现,我会更喜欢。

一旦文件出现,它就可以启动。然后我只需再次将其删除即可。这意味着不必每次都将服务设置为禁用,并且可能输入错误的命令并将其关闭。

我已经用 Google 搜索过这个,但是没有找到。

Wants=单元文件中诸如和之类的内容Required= 似乎仅接受其他服务而不接受文件位置。

这怎么可能呢?

答案1

您可以添加路径单元监视文件系统路径并启动相应的服务。您可以创建一个docker.path单元来激活相应的docker.service单元。它可能看起来像这样:

[Unit]
Description=Start Docker when my file exists

[Path]
PathExists=/my/path

[Install]
WantedBy=multi-user.target

相关内容