Отправлено с iPhone
> 11 дек. 2014 г., в 15:27, Francis Moreau <francis.m...@gmail.com> написал(а): > >> On 12/10/2014 10:19 AM, Francis Moreau wrote: >> Hello, >> >>> On 12/10/2014 07:23 AM, Ivan Shapovalov wrote: >>>> On Tuesday 09 December 2014 at 17:25:48, Francis Moreau wrote: >>>> Hello Lennart, >>>> >>>> Thanks for answering ! >>>> >>>>> On 12/09/2014 02:10 PM, Lennart Poettering wrote: >>>>>> On Tue, 09.12.14 11:19, Francis Moreau (francis.m...@gmail.com) wrote: >>>>>> >>>>>> Hello, >>>>>> >>>>>> I've a very weird behaviour with systemd 217: >>>>>> >>>>>> # systemctl show -p Wants multi-user.target | grep network.service >>>>>> # systemctl show -p Wants runlevel3.target | grep network.service >>>>>> Wants= ... network.service ... >>>>>> # systemctl show -p Wants multi-user.target | grep network.service >>>>>> Wants=... network.service ... >>>>>> >>>>>> So basically the network.service is not part of the multi-user target >>>>>> dependencies. But if I'm showing the state of the runlevel3 target, the >>>>>> network service magically becomes a dep of multi-user.target. >>>>>> >>>>>> The network.service is an sysv service which is started by rc[345].d and >>>>>> has in its LSB: >>>>>> >>>>>> Provide: $network >>>>>> >>>>>> Could anybody clarify what I'm facing ? >>>>> >>>>> systemd lazy loads services from the file system as they are >>>>> referenced. This includes symlinked aliases, which are only loaded when >>>>> a unit is referenced by that specific name. >>>> >>>> Sorry but I don't really understand. >>>> >>>> Do you mean that the network.service wasn't loaded although the >>>> runlevel3.target, which is an alias for multi-user target (default >>>> target) wants it ? >>>> >>>> I would be glad if you could enlight me because I'm confused. >>> >>> Apparently, network.service gets pulled in only via runlevel3.target, i. e. >>> there is a symlink of kind >>> >>> /{etc,usr/lib,run}/systemd/system/runlevel3.target.wants/network.service -> >>> network.service >>> >>> That is, the Wants= dependency is generated for runlevel3.target only, not >>> for >>> multi-user.target. >>> >>> And, because systemd loads units lazily, systemd does not know about >>> runlevel3.target >>> (and its dependencies) before anything forces systemd to load that unit. >>> >>> After you issue `systemctl show runlevel3.target`, systemd loads that unit, >>> loads its dependencies and merges them to multi-user.target (because >>> runlevel3.target >>> is an alias for multi-user.target). >> >> That helps, thanks ! >> >> However that seems a bit weird to have a target with 'hidden' >> dependencies that can appears magically when poking another one, at >> least from my point of (user) view. >> >> Was the lazy load mechanism integrated recently ? I'm asking because >> systemd 208 doesn't show the same behaviour. >> >> What's the recommanded way to make sure that the Wants= dependencies >> generated for runlevel3 target get pplied as soon as possible to its >> alias target 'multi-user' ? > > Could anybody enlight me because I actually don't know how I'm supposed > to start all services that runlevel3 would start otherwise. Should I add > manually a "Wants=</etc/rd.d/rc3/S*>" dependency in the multi-user target ? > Workaround would be to set default.target to runlevel3.target (or 5). This will trigger everything mult-user normally does in addition to direct dependencies. But in general aliasing via symlinks looks problematic enough. > Thanks. > > _______________________________________________ > systemd-devel mailing list > systemd-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/systemd-devel _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel