Need help with systemd service files

Garrett Holmstrom gholms at fedoraproject.org
Sun Feb 26 06:37:38 UTC 2012


On 2012-02-24 4:22, Juerg Haefliger wrote:
> So I installed the official Fedora version of cloud-init but the
> service startup ordering is broken there too:
>
> [root at 342 ~]# dmesg | grep cloud | grep About
> [   91.668396] systemd[1]: About to execute: /usr/bin/cloud-init start-local
> [   91.993238] systemd[1]: About to execute: /usr/bin/cloud-init-cfg all config
> [   92.540255] systemd[1]: About to execute: /usr/bin/cloud-init-cfg all final
> [   92.559834] systemd[1]: About to execute: /usr/bin/cloud-init start

This is strange.  Cloud-init is split into four services that mirror 
their upstart counterparts.  The two services that run 
/usr/bin/cloud-init are supposed to run first, in sequence:

   cloud-init-local.service:
   Wants=local-fs.target
   After=local-fs.target

   cloud-init.service:
   After=local-fs.target network.target cloud-init-local.service
   Requires=network.target
   Wants=local-fs.target cloud-init-local.service

They then use a target to effect the equivalent of the upstart signal 
that cloud-init would normally emit at this point:

   cloud-config.target:
   Requires=cloud-init-local.service cloud-init.service

Note that targets are allowed to omit ordering dependencies.

Finally come the two services that run /usr/bin/cloud-init-cfg:

   cloud-config.service:
   After=network.target syslog.target cloud-config.target
   Requires=cloud-config.target
   Wants=network.target

   cloud-final.service:
   After=network.target syslog.target cloud-config.service rc-local.service
   Requires=cloud-config.target
   Wants=network.target

Given this dependency tree, I don't see how cloud-init.service could 
possibly start after cloud-config.service and cloud-final.service. 
Anyone have ideas?


More information about the devel mailing list