On Di, 20.03.18 15:09, Colin Walters (walters at verbum.org) wrote: > Another way I've thought about handling this is to basically invert things so that > we have a "stub" unit that starts on bootup, and its ExecStop does > the real work: This is the correct and recommended way to do this. > [Unit] > Description=cgwalters-startstop > ConditionPathExists=/run/ostree-booted > DefaultDependencies=no > RequiresMountsFor=/sysroot > After=basic.target > Before=multi-user.target > Conflicts=final.target > Before=final.target > > [Service] > Type=oneshot > RemainAfterExit=yes > ExecStart=/usr/bin/true You can drop this line. On current systemd versions services without ExecStart= are perfectly fine, as long as they have ExecStop=, precisely to cover this usecase nicely. > ExecStop=/usr/bin/sh -c 'sleep 5 && ls -ald /ostree/repo' > > [Install] > WantedBy=multi-user.target > > Which seems to work but feels...a bit ugly? I think it's relatively pretty, as it means you have to "start" something explicitly so that it can run code at shutdown. I'd claim this is a semantical benefit, not a malus. Lennart -- Lennart Poettering, Red Hat