On Fri, 07.10.11 17:24, Cliff Brake ([email protected]) wrote:

> Hi,
> 
> I'm trying to customize systemd to start/stop network interfaces in an
> embedded system (OpenEmbedded/Angstrom).  Angstrom has some support
> for systemd and its working fairly well so far.  Are there any
> examples I can start with?  Basically, when a network device is
> installed (USB), I'd like to run "ifup eth0", etc.

Debian has a service file for that which pulls in ifup from the udev
device via a template which I believe is quite pretty. Might be worth
looking into that.

We are actually contemplating moving something like a default
[email protected] file into systemd upstream proper.

> 
> this is what I have so far:
> 
> [Unit]
> Description=Start networking services
> After=syslog.target

Please drop After=syslog.target. It's not necessary anymore.

> 
> [Service]
> ExecStart=/sbin/ifup eth0
> Type=oneshot
> ExecStop=/sbin/ifdown eth0
> StandardOutput=syslog+console

Note that all services default to sylog logging anyway these days, so
i'd recommend removing StandardOutput= here.

> 
> [Install]
> WantedBy=multi-user.target
> 
> but its not working:
> 
> systemctl start network.service
> asix 1-2:1.0: eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
> ifup[756]: udhcpc (v1.18.5) started
> ifup[756]: Sending discover...
> ifup[756]: Sending select for 192.168.1.100...
> ifup[756]: Lease of 192.168.1.100 obtained, lease time 3600
> ifup[756]: adding dns 192.168.1.1
> 
> This all looks good, but then when I do ifconfig, the network devices
> is not configured:
> 
> root@cm-x270:/lib/systemd/system# ifconfig
> lo        Link encap:Local Loopback
>           inet addr:127.0.0.1  Mask:255.0.0.0
>           inet6 addr: ::1/128 Scope:Host
>           UP LOOPBACK RUNNING  MTU:16436  Metric:1
>           RX packets:4 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:0
>           RX bytes:268 (268.0 B)  TX bytes:268 (268.0 B)
> 
> running ifup eth0 manually works fine.

Hmm, my guess is that $PATH is set differently here and the dhcp
callouts fail with the shorter default $PATH of systemd?

> 
> Beyond this, it would be nice to somehow trigger on when a USB NIC is
> installed and automatically run ifup.  Any pointers would be
> appreciated.

Pull in [email protected] from the udev rules by setting SYSTEMD_WANTS as
udev property on the them. Check the DEbian patch how to do that.

Lennart

-- 
Lennart Poettering - Red Hat, Inc.
_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to