On 07/29/2016 12:56 PM, Simon McVittie wrote:
On 29/07/16 16:59, Chip wrote:
On 07/29/2016 05:57 AM, Lennart Poettering wrote:
My educated guess is that some cyclic dependency or so caused it to
not be considered for activation at boot.
Lennart's guess was correct:

Jul 29 11:33:06 blablabla systemd[1]: basic.target: Found ordering cycle
on basic.target/start
Jul 29 11:33:06 blablabla systemd[1]: basic.target: Found dependency on
sockets.target/start
Jul 29 11:33:06 blablabla systemd[1]: basic.target: Found dependency on
dnscrypt-proxy.socket/start
Jul 29 11:33:06 blablabla systemd[1]: basic.target: Found dependency on
network.target/start
Jul 29 11:33:06 blablabla systemd[1]: basic.target: Found dependency on
NetworkManager.service/start
Jul 29 11:33:06 blablabla systemd[1]: basic.target: Found dependency on
dbus.service/start
Jul 29 11:33:06 blablabla systemd[1]: basic.target: Found dependency on
basic.target/start
Jul 29 11:33:06 blablabla systemd[1]: basic.target: Breaking ordering
cycle by deleting job sockets.target/start
You have asked systemd to do something impossible: basic.target depends
on dnscrypt-proxy.socket, which depends on network.target, which
indirectly depends on basic.target. systemd can't start them all in the
requested order, so it breaks the cycle in an essentially random place.

The bug here is probably that the dnscrypt-proxy.socket *socket* unit
should not depend on anything. You probably intended the corresponding
*service* unit, dnscrypt-proxy.service, to depend on network.target instead?

A socket unit just means systemd is listening on a socket: there's no
reason for it to depend on anything (except perhaps the creation of the
necessary directories, if it's an AF_UNIX socket). If you need the
network to be up before dnscrypt-proxy actually starts, then it's
dnscrypt-proxy.service that needs the dependency.

A wise analysis. It makes sense. Now, I'm not a startup maven and systemd is certainly very new to me. How would you suggest I correct this? And I believe, yes, network must be operating before dnscrypt-proxy activates. I'm guessing that some configuration file in /etc/systemd/system/ needs tweaking?

/etc/ystemd/system/ contains:

bluetooth.target.wants                      hibernate.target.wants
bootdlog.service hybrid-sleep.target.wants
chip-startupdnscryptproxy.service           multi-user.target.wants
dbus-org.bluez.service network-online.target.wants
dbus-org.freedesktop.Avahi.service          paths.target.wants
dbus-org.freedesktop.ModemManager1.service  printer.target.wants
dbus-org.freedesktop.nm-dispatcher.service  shutdown.target.wants
dbus-org.freedesktop.thermald.service       sockets.target.wants
default.target.wants                        suspend.target.wants
display-manager.service                     sysinit.target.wants
display-manager.service.wants               syslog.service
getty.target.wants                          timers.target.wants

multi-user.targets.wants contains:

anacron.service                    NetworkManager.service
avahi-daemon.service               openvpn.service
binfmt-support.service             php7.0-fpm.service
cron.service                       pppd-dns.service
cups-browsed.service               remote-fs.target
cups.path                          rsyslog.service
dns-clean.service                  snapd.refresh.timer
dnscrypt-proxy-resolvconf.service  snapd.service
dnscrypt-proxy.service             systemd-resolved.service
ModemManager.service               thermald.service
networking.service                 ufw.service



_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to