On 2018-04-27 03:56, Jérémy Rosen wrote:
Ok, there are a couple of tools that have not be mentionned..
"systemd-analyze verify <service>" will check all sorts of stuff on a
service, including checking recursively the deps and finding ordering
cycles
systemctl list-dependencies can show ordering/req dependencies, up or
down, recursively or not
to be completely honest, I never use dot for cycles.... I sometime
read/grep the .dot file itself, but I never generate the image...
systemd-analyze is my favorite tool for that sort of problems
On 27/04/2018 06:01, Andrei Borzenkov wrote:
Well, you could use "systemctl show -p Id -p After -p Before" but the
problem is to find the correct unit set. You really need something that
simulates transaction and evaluates dependencies like systemd does it.
Note that systemd should print offending cycle when it hits it:
апр 27 06:54:14 bor-Latitude-E5450 systemd[1582]: foo.service: Found
ordering cycle on foo.service/start
апр 27 06:54:14 bor-Latitude-E5450 systemd[1582]: foo.service: Found
dependency on bar.service/start
апр 27 06:54:14 bor-Latitude-E5450 systemd[1582]: foo.service: Found
dependency on baz.service/start
апр 27 06:54:14 bor-Latitude-E5450 systemd[1582]: foo.service: Found
dependency on foo.service/start
апр 27 06:54:14 bor-Latitude-E5450 systemd[1582]: foo.service: Breaking
ordering cycle by deleting job baz.service/start
Well these are good things to know. I can't recall if I ever tried to
use them when faced with a loop. I'd guess that I tried
`systemd-analyze verify` as it sort of jumps off the man page whereas
`systemctl list-dependencies` is kind of buried in the details.
It would be helpful it if additionally printed kind of dependency (like
foo.service is After bar.service) because this is by far not obvious for
average user.
Maybe one really helpful immediate change would be to have systemd log
some hints when it breaks a loop to suggest a few commands that might be
run to help understand the situation more clearly.
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel