<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">2014-08-22 14:33 GMT+03:00 Денис Смирнов:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

On Fri, Aug 22, 2014 at 12:03:56PM +0300, diver wrote:<br>
<br>
<br>
&gt; root@office:~$ systemctl status network<br>
&gt; ● network.service - Network Connectivity<br>
&gt;    Loaded: loaded (/etc/systemd/system/network.service; enabled)<br>
&gt;    Active: inactive (dead)<br>
<br>
О, я понял. Он enabled, но его никто не вытягивает!<br>
Там ошибка в секции Install -- нужно добавить кроме<br>
<br>
WantedBy=network-online.target<br>
еще и:<br>
WantedBy=network.target<br>
<br>
и сделать:<br>
systemctl deamon-reload<br>
systemctl reenable network.service<br>
<br></blockquote><div>К сожелению, опять не помогло. <br><br>$ systemctl status network<br>● network.service - Network Connectivity<br>   Loaded: loaded (/etc/systemd/system/network.service; enabled)<br>   Active: inactive (dead)<br>

<br><br>$ systemctl list-dependencies network.service --reverse<br>network.service<br>●(green) ├─network-online.target<br>│   └─...<br>●(red) └─network.target<br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">


&gt; Ну допустим, но почему нет никаких сообщений в лог ? как это предлагается<br>
&gt; штатно диагностировать? безотносительно к текущей проблема, а в целом. Не<br>
&gt; будут же люди все время коллективно решать такие проблемы в рассылках? Да и<br>
&gt; не всегда есть сеть.<br>
<br>
Потому что его никто не запускает, вот и нет сообщений в лог.<br>
<br>
Это одна из самых неочевидных особенностей systemd для админа при первом<br>
знакомстве.<br>
<br>
Дело в том, что в systemd вообще нет понятия enable/disable аналогичного<br>
тому, что в sysvinit.<br>
<br>
В процессе загрузки systemd пытается &quot;запустить&quot; default.target. Смотрит<br>
на его зависимости (wants/requires) и запускает указанное. И так<br>
рекурсивно.<br>
<br>
А systemctl enable делает только одно -- оно смотрит в секцию Install<br>
указанного сервиса, и создает соответствующие симлинки.<br>
<br>
А вот дальше начинается самое интересное -- etcnet сейчас зависит от<br>
network-online.target. Причем он должен запуститься _до_ этого самоего<br>
network-online.target.<br>
<br>
Но network-online.target вытягивается исключительно теми сервисами,<br>
которые требуют обязательно поднятой сети до своего старта. Если вдруг у<br>
вас на машине не оказалось ни одного такого сервиса -- запускать сеть<br>
некому.<br>
<br>
network.target от network-online.target отличается тем, что первый требует<br>
чтобы сеть запустилась, а второй -- чтобы сеть была установлена до<br>
продолжения загрузки.<br>
<br>
А необходимость в local-fs.target тоже следствие подобной интересной<br>
ситуации -- network запускается после (After) udev-settle. Но он его не<br>
_требует_ (Wants/Requires).<br>
<br>
Это значит, что если udev-settle запускается -- надо запускать network<br>
после него. Но если udev-settle никому не нужен -- то не надо пытаться его<br>
запускать.<br>
<br>
Раньше из-за сервиса, сохраняющего dmesg, udev-settle стартовал всегда. А<br>
вот теперь он стартует мягко скажем далеко не всегда. И тогда некому<br>
потребовать, чтобы network запускался после local-fs.target.<br>
<br>
Все это выглядит очень запутанным на первый взгляд, для осознания нужно<br>
четко понять три идеи:<br>
<br>
1. Wants/Requires указывают _зависимости_, After/Before -- сортировку. Это<br>
ортогональные понятия.<br>
<br>
2. enable/disable исключительно создают симлинки следуя командам в секции<br>
Install у сервиса.<br>
<br>
3. сервис запускается _только_ если на него есть wants/requires<br>
зависимость от сервиса, который запускается. Единственный юнит, который<br>
всегда запускается при старте -- default.target. Остальное только если<br>
оказывается в дереве зависимостей.<br>
<span class=""><font color="#888888"><br></font></span></blockquote><div>Спасибо за подробное описание работы.<br></div></div><br>-- <br>LRU: #407670
</div></div>