<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Ok, there are a couple of tools that have not be mentionned..<br>
<br>
"systemd-analyze verify <service>" will check all sorts of
stuff on a service, including checking recursively the deps and
finding ordering cycles<br>
<br>
<br>
systemctl list-dependencies can show ordering/req dependencies, up
or down, recursively or not<br>
<br>
to be completely honest, I never use dot for cycles.... I sometime
read/grep the .dot file itself, but I never generate the image...<br>
<br>
systemd-analyze is my favorite tool for that sort of problems<br>
<br>
<div class="moz-cite-prefix">On 27/04/2018 06:01, Andrei Borzenkov
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:90eb7e6a-d7fb-9687-bd20-67b689c8a45e@gmail.com">
<pre wrap="">26.04.2018 23:20, John Florian пишет:
</pre>
<blockquote type="cite">
<pre wrap="">On 2018-04-26 16:04, John Florian wrote:
</pre>
<blockquote type="cite">
<pre wrap="">On 2018-04-25 04:53, Lennart Poettering wrote:
</pre>
<blockquote type="cite">
<pre wrap="">There have been requests in improving the cycle breaking algorithm,
but not much has been done in this area, since it's not clear what can
be done. Ultimately it's just polishing a broken situation, and
the better way out is to fix things properly, i.e. just correct the
cycle in the dependencies in the first place.
</pre>
</blockquote>
<pre wrap="">
Having been the author of numerous custom services that are intended
to wedge into those provided by systemd/Fedora I've faced resolving
these several times and I've never felt all that competent at the
task. Lennart, you were immensely helpful on one occasion by pointing
me to `systemctl show FOO` but even then hunting the problem down was
far from simple (for me). I've done the dot/graphviz thing and found
it just as useless to me as when I've tried applying it to Puppet's
ordering/dependency looping. I'm not blaming those tools (or systemd)
because I'm well aware much of the problem is my inability to use them
effectively. The graphs always seem to be overly simple and revealing
no problem or overly detailed and obscuring the problem. Compound
that with "an arrow pointing this way means what exactly?"
Is there anything else that could be done to make hunting these loops
down easier? Is there an example of any product that has a similar
situation where they excel at helping the developer? Or are we
already there and I just need more practice? I'm sure part of my
struggle is just not encountering these very regularly and integrating
into much that I'm only partly familiar with, but the result is the
same, trepidation and loathing.
</pre>
</blockquote>
<pre wrap="">
Since I hate to grumble w/o so much as offering any possible
suggestions... It seems like it might be helpful to have something like
`systemctl show` but only dumping the properties used for ordering and
dependencies. Ideally, only ordering OR dependencies as the case
warrants and for all units involved, but only those units.
</pre>
</blockquote>
<pre wrap="">
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
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.
_______________________________________________
systemd-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:systemd-devel@lists.freedesktop.org">systemd-devel@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="https://lists.freedesktop.org/mailman/listinfo/systemd-devel">https://lists.freedesktop.org/mailman/listinfo/systemd-devel</a>
</pre>
</blockquote>
<br>
<div class="moz-signature">-- <br>
<div>
<link href="https://fonts.googleapis.com/css?family=Raleway"
rel="stylesheet" type="text/css">
<font face="Raleway, regular">
<table style="padding:20px;margin-bottom:-10px" border="0">
<tbody>
<tr>
<td style="font-size:13px; color:#ff8054; text-align:
center; padding-right:30px"> <a
href="http://www.smile.eu/"> <img
style="max-width:100%; height:auto"
src="http://ftp.smile.fr/client/Communication/signature/img/Logo-new.png"
alt="SMILE"> </a><br>
<br>
<p style="line-heigth:8px">20 rue des Jardins<br>
92600 Asnières-sur-Seine</p>
</td>
<td style="border-left: 1px solid #3b7ffe;
padding-left:20px; font-size:13px; color:#ff8054;">
<div style="color:#ff8054; font-size:14px;"> <b>Jérémy
ROSEN</b> </div>
<div style="color:#3b7ffe; font-size:13px;">
Architecte technique<br>
Responsable de l'expertise Smile-ECS </div>
<br>
<div style="color:#3b7ffe; font-size:13px;"> <span
style="white-space: nowrap"><img
style="margin-right:5px"
src="http://ftp.smile.fr/client/Communication/signature/img/mail.png"
alt="email" height="10" width="12"> <a
href="mailto:jeremy.rosen@smile.fr"
style="color:#3b7ffe; font-size:13px;
text-decoration:none;">jeremy.rosen@smile.fr</a>
</span> <br>
<span style="white-space: nowrap"><img
style="margin-right:5px"
src="http://ftp.smile.fr/client/Communication/signature/img/phone.png"
alt="phone" height="10" width="10"></span>
+33141402967 <br>
<span style="white-space: nowrap"><img
style="margin-right:5px"
src="http://ftp.smile.fr/client/Communication/signature/img/web.png"
alt="url" height="12" width="12">
<a href="http://www.smile.eu"
style="color:#3b7ffe; font-size:13px;
text-decoration:none;">http://www.smile.eu</a> </span>
</div>
<br>
<div> <span><a style="margin-right:5px"
href="https://twitter.com/GroupeSmile"><img
src="http://ftp.smile.fr/client/Communication/signature/img/rs-twitter.png"
alt="Twitter" style="max-width:100%;
height:auto"></a></span> <span><a
style="margin-right:5px"
href="https://www.facebook.com/smileopensource"><img
src="http://ftp.smile.fr/client/Communication/signature/img/rs-facebook.png"
alt="Facebook" style="max-width:100%;
height:auto"></a></span> <span><a
style="margin-right:5px"
href="https://www.linkedin.com/company/smile"><img
src="http://ftp.smile.fr/client/Communication/signature/img/rs-linkedin.png"
alt="LinkedIn" style="max-width:100%;
height:auto"></a></span> <span><a
style="margin-right:5px"
href="https://github.com/Smile-SA"><img
src="http://ftp.smile.fr/client/Communication/signature/img/rs-github.png"
alt="Github" style="max-width:100%;
height:auto"></a></span> </div>
</td>
</tr>
</tbody>
</table>
<br>
<div> <a
href="http://smile.eu/?utm_source=signature&utm_medium=email&utm_campaign=signature"><img
src="http://signature.smile.eu/assets/img/bandeau_mail_smile2017.gif.gif"
alt="Découvrez l’univers Smile, rendez-vous sur
smile.eu" border="0"></a></div>
<br>
<div style="color:#a3acb5; font-size:10px;"> <img
src="http://ftp.smile.fr/client/Communication/signature/img/eco.png"
alt="eco" height="11" width="13"> Pour la planète,
n'imprimez ce mail que si c'est nécessaire </div>
</font>
</div>
</div>
</body>
</html>