On Thu, Jun 28, 2018, 18:37 MALET Jean-Luc <jeanluc.malet.snowsat at gmail.com> wrote: > Hi! > > I'm in charge of setting up an embedded solution based on debian, so on > systemd, I'm more used to old init process, that was easy to tweak > because based on script... but well... times seems now on systemd. > > I'm really puzzled because since the documentation seems to lack > information, I have to find information on tutorials that focus only on > late services.. > > I found on one how to find the targets using "systemctl list-units > --type=target" and some diagram explaining what target are suposed to be > run in what order.... but well... > > my issue is that I've to run a script as early as possible, before > mounts are done because lot of service will fail without , so I created > a service > Mainly I guess it's because systemd wants to *avoid* things like "before everything else" or "after everything else". (What if two units want to be first?) The idea is that dependencies should be a little more explicit if possible. For example, some of your services require /var/foo to be mounted? They can depend on "var-foo.mount" or at least "local-fs.target". And so on. (Well, not to the extreme of course: even systemd has synchronization points like basic.target, local-fs.target, ...) > > [Unit] > Description=mount some file systems before anything and prepare the system > Before=systemd-remount-fs.service > > [Service] > Type=oneshot > ExecStart=/etc/init.d/setup.sh start > > [Install] > WantedBy=swap.target > > > using journalctl I found that the first Reached point was the > swap.target so it looked like a good WantedBy, but looking at the > journalctl showed that the service was still not run in early systemd > steps... so I added a Before rule using the "systemctl list-units > --type=service" to guess what service where run on the system... and > well... it's not working as expected... I still see my service run after > some other services... > basic.target or sysinit.target would be a better place, depending on what you do. It might be a good idea to split the mega-script up if it tries to perform several distinct tasks, too. In either case, add "DefaultDependencies=no" to your services, to opt out of all the hidden dependencies (which if I remember correctly are static, essentially After=basic.target). -- Mantas MikulÄ?nas -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.freedesktop.org/archives/systemd-devel/attachments/20180628/7c34053c/attachment.html>