<p dir="ltr"><br>
22 авг. 2014 г. 22:33 пользователь "Денис Смирнов" <<a href="mailto:mithraen@freesource.info">mithraen@freesource.info</a>> написал:<br>
><br>
> On Fri, Aug 22, 2014 at 11:17:01PM +0400, Alexey Shabalin wrote:<br>
><br>
> > Да, потерпите недельку, я в отпуске, доступа ни к чему нет.<br>
> > Вы уже все грабли разобрали.<br>
> > Надо чинить юнит network.service в etcnet.<br>
> > Мы обсуждали с sem@ этот юнит, и согласились, что его правильнее причислить<br>
> > к network-online.target, т.к. все же после запуска сети через etcnet у нас<br>
> > сеть не просто стартовала, а и стартанули dhcpcd, vpn и т.п. и адреса<br>
> > получены. А вот в секцию Install все равно лучше выставить<br>
> > multi-user.target.<br>
><br>
> Собственно в systemd-networkd так и сделано.<br>
><br>
Да, но у systemd-network есть ещё и отдельный специальный online target, а etcnet это два в одном, точнее он только приравнен к online target.</p>
<p dir="ltr">> > Или network-online.target засунуть внутрь multi-user.target (я почему-то думал, что так и есть)<br>
><br>
> А вот это некорректно:<br>
><br>
> network-online.target<br>
> Units that strictly require a configured network connection should pull in network-online.target (via a Wants=<br>
> type dependency) and order themselves after it. This target unit is intended to pull in a service that delays<br>
> further execution until the network is sufficiently set up. What precisely this requires is left to the<br>
> implementation of the network managing service.<br>
><br>
> Note the distinction between this unit and network.target. This unit is an active unit (i.e. pulled in by the<br>
> consumer rather than the provider of this functionality) and pulls in a service which possibly adds substantial<br>
> delays to further execution. In contrast, network.target is a passive unit (i.e. pulled in by the provider of<br>
> the functionality, rather than the consumer) that usually does not delay execution much. Usually,<br>
> network.target is part of the boot of most systems, while network-online.target is not, except when at least<br>
> one unit requires it. Also see Running Services After the Network is up[1] for more information.<br>
><br>
> All mount units for remote network file systems automatically pull in this unit, and order themselves after it.<br>
> Note that networking daemons that simply provide functionality to other hosts generally do not need to pull<br>
> this in.<br>
><br>
> Т.е. network.service должен быть Before=network-online.target, но не должен его втягивать.<br>
> А вот network.target он втягивать должен, как и втягиваться multi-user.target.<br>
><br>
> > И ещё, уже не раз видел ранее предложения в секцию Install указывать<br>
> > default.target. Так вот, мне кажется этого делать нельзя, цель должна быть<br>
> > чётко указана, local-fs, sysinit, basic,multi-user,graphical. Т.к. default<br>
> > может быть любым из 3 последних, и если мне нужен только<br>
> > basic.target(компьютер без сети), то хотелось бы что бы сеть нигде случайно<br>
> > не зацепилась.<br>
><br>
> Спасибо, у меня как раз был вопрос как правильно.<br>
><br>
> Т.е. большинство сервисов надо отправлять в multi-user.target, то что связано с<br>
> графикой в graphical.target. А что надо помещать в basic.target?<br>
><br>
> И правильно ли я понимаю, что если цель указана basic.target, но в юните не<br>
> указано Before=basic.target, то цель basic.target может считаться достигнутой<br>
> до того как соответствующий сервис стартовал?<br>
></p>
<p dir="ltr">Лучше ещё раз пересчитать man'ы про Before и т.п. <br>
Точно помню, что какой-то параметр может сразу перевести таргет в достигнутый при запуске одного сервиса. After и Before, вроде должны во всех сервисах отработать, что бы таргет был достигнут. Т.е. "мягкие" и "жёсткие" зависимости.<br>
</p>