[systemd-devel] local-fs and remote-fs targets / passive active units
Thomas HUMMEL
thomas.hummel at pasteur.fr
Tue May 5 15:15:34 UTC 2020
On 4/28/20 5:36 PM, Thomas HUMMEL wrote:
> 3) regarding local-fs dans remote-fs targets : I'm not really sure if
> any fits in either passive or active units.
Hello again,
regarding local-fs.target : is it legit for a custom service unit to
pull it in with a Before=local-fs.target (no Wants or Requires) ?
For instance, I did create a simple oneshot test service (dodo.service)
which just sleeps 20s stating Before=local-fs.target. I did that to
emulate another service I created which formats an ssd and locally mount
it (but outside of fstab so it would not get the automatic ordering
dependency that systemd-fstab-generator gives)
Note : this is on a statless host, so fstab states
rootfs / tmpfs defaults,size=3500M 0 0
1) it seem to create lots of ordering cycles like this one (among many)
dodo.service: Job systemd-tmpfiles-setup.service/start deleted to break
ordering cycle starting with dodo.service/start
I can't really see why even if I see that systemd-tmpfiles-setup has
also a Before=local-fs.target ordering dependency ?
2) given the job ultimately gets deleted because of this cycle, I cannot
understand why it seems to be exectuted anyway :
[root at maestro-1002 systemd]# journalctl | grep -i
systemd-tmpfiles-setup.service
May 05 15:45:56 localhost systemd[1]: systemd-tmpfiles-setup.service:
Installed new job systemd-tmpfiles-setup.service/start as 12
May 05 15:45:56 localhost systemd[1]: systemd-tmpfiles-setup.service:
Passing 0 fds to service
May 05 15:45:56 localhost systemd[1]: systemd-tmpfiles-setup.service:
About to execute: /usr/bin/systemd-tmpfiles --create --remove --boot
--exclude-prefix=/dev
May 05 15:45:56 localhost systemd[1]: systemd-tmpfiles-setup.service:
Forked /usr/bin/systemd-tmpfiles as 863
May 05 15:45:56 localhost systemd[1]: systemd-tmpfiles-setup.service:
Changed dead -> start
May 05 15:45:56 localhost systemd[863]: systemd-tmpfiles-setup.service:
Executing: /usr/bin/systemd-tmpfiles --create --remove --boot
--exclude-prefix=/dev
May 05 15:45:57 localhost systemd[1]: systemd-tmpfiles-setup.service:
Child 863 belongs to systemd-tmpfiles-setup.service.
May 05 15:45:57 localhost systemd[1]: systemd-tmpfiles-setup.service:
Main process exited, code=exited, status=0/SUCCESS
May 05 15:45:57 localhost systemd[1]: systemd-tmpfiles-setup.service:
Changed start -> exited
May 05 15:45:57 localhost systemd[1]: systemd-tmpfiles-setup.service:
Job systemd-tmpfiles-setup.service/start finished, result=done
May 05 15:45:57 localhost systemd[1]: Got cgroup empty notification for:
/system.slice/systemd-tmpfiles-setup.service
May 05 15:46:31 maestro-1002.maestro.pasteur.fr systemd[1]:
systemd-tmpfiles-setup.service: Changed dead -> exited
-> this seems to be like an actual run and not only the queuing of a job
into the transaction which would be discarded afterwards when the cycle
is discovered ?
However once the host booted, I can see that at least one tmpfile (in a
tmpfiles.d config file) has indeed not be created as it should be (and
as it actually is when /usr/bin/systemd-tmpfiles --create --remove
--boot --exclude-prefix=/dev is run manually).
May 05 15:46:32 maestro-1002.maestro.pasteur.fr systemd[1]:
systemd-tmpfiles-setup.service: Installed new job
systemd-tmpfiles-setup.service/stop as 84
May 05 15:46:32 maestro-1002.maestro.pasteur.fr systemd[1]:
systemd-tmpfiles-setup.service: Changed exited -> dead
May 05 15:46:32 maestro-1002.maestro.pasteur.fr systemd[1]:
systemd-tmpfiles-setup.service: Job systemd-tmpfiles-setup.service/stop
finished, result=done
May 05 15:46:34 maestro-1002.maestro.pasteur.fr systemd[1]:
dodo.service: Found dependency on systemd-tmpfiles-setup.service/start
May 05 15:46:34 maestro-1002.maestro.pasteur.fr systemd[1]:
dodo.service: Job systemd-tmpfiles-setup.service/start deleted to break
ordering cycle starting with dodo.service/start
May 05 15:51:45 maestro-1002 systemd[1]: Preset files say disable
systemd-tmpfiles-setup.service.
Can you help me figure out my misunderstanding ?
Thanks for your help
--
Thomas HUMMEL
More information about the systemd-devel
mailing list