> On Sun, Apr 12, 2015, at 12:49 PM, Lennart Poettering wrote: > > Hmm? why that? why does sshd care?
opensuse has a convenient interface status tool rpm -q --whatprovides `which ifstatus ` wicked-service-0.6.17-12.1.x86_64 ifstatus br0 br0 up link: #6, state up, mtu 1500 type: bridge config: compat:/etc/sysconfig/network/ifcfg-br0 leases: ipv4 static granted leases: ipv6 static granted addr: ipv4 172.30.11.2/22 [static] addr: ipv6 2001:470:1f05:6a0::2/64 [static] route: ipv4 default via 172.30.11.100 route: ipv6 default via 2001:470:1f05:6a0::100 In the bridge case, with sshd listening on the br0 IP adddess, with this unit cat /etc/systemd/system/sshd.service [Unit] Description=OpenSSH Daemon After=syslog.target network.target network-online.target [Service] EnvironmentFile=-/etc/sysconfig/ssh ExecStartPre=/usr/sbin/sshd-gen-keys-start ExecStart=/usr/sbin/sshd -D $SSHD_OPTS ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=always [Install] WantedBy=multi-user.target SSHD fails to launch on boot, firing the error I shared above. But if a force a dependency check cat << EOF > /usr/local/scripts/wait-for-br0.sh #!/bin/bash while [[ \$(ifstatus br0 | grep ^br0 | awk '{print \$2}') != 'up' ]]; do sleep 1 done EOF cat /etc/systemd/system/sshd.service [Unit] Description=OpenSSH Daemon After=syslog.target network.target network-online.target [Service] EnvironmentFile=-/etc/sysconfig/ssh ExecStartPre=/usr/sbin/sshd-gen-keys-start + ExecStartPre=sh /usr/local/scripts/wait-for-br0.sh ExecStart=/usr/sbin/sshd -D $SSHD_OPTS ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=always [Install] WantedBy=multi-user.target Then reboot, SSHD boots up correctly . It's available as you'd expect. It sure looks like a depdenency issue. And even though the unit's waiting for network.target network-online.target it doesn't seem to consider br0 being up as prereqs for those targets. So, if NOT those targets, which one? How do I convince the sshd unit to correctly wait for BRIDGES being up using systemd's ntaive dependency management? Or is the only way to assume that systemd can't detect the bridges and handle it manually like I did above? LT _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel