启动时正在启动systemd.service,找不到eth0

启动时正在启动systemd.service,找不到eth0,service,embedded-linux,ethernet,systemd,systemctl,Service,Embedded Linux,Ethernet,Systemd,Systemctl,我使用systemd在单板计算机嵌入式平台上启动可执行文件。我希望此应用程序在无头模式下运行-无需登录-用户将通过web浏览器控制输入 我使用的是运行Debian的TS-7800-V2 这是我的服务webserver.service设置etc/systemd/system: [Unit] Description=Run LWSWS webserver on startup Wants=network-online.target After=network.target network-onlin

我使用systemd在单板计算机嵌入式平台上启动可执行文件。我希望此应用程序在无头模式下运行-无需登录-用户将通过web浏览器控制输入

我使用的是运行Debian的TS-7800-V2

这是我的服务webserver.service设置etc/systemd/system:

[Unit]
Description=Run LWSWS webserver on startup
Wants=network-online.target
After=network.target network-online.target

[Service]
Type=simple
ExecStart=/libwebsockets/build/bin/lwsws

[Install]
WantedBy=multi-user.target
我已启用并启动服务,并检查了状态:

root@ts7800-v2:~# systemctl status webserver.service 
��● webserver.service - Run LWSWS webserver on startup
   Loaded: loaded (/etc/systemd/system/webserver.service; enabled; vendor preset
   Active: active (running) since Mon 2017-12-11 11:23:39 PST; 11min ago
 Main PID: 2408 (lwsws)
   CGroup: /system.slice/webserver.service
       ��└��─2408 /libwebsockets/build/bin/lwsws

Dec 11 11:23:39 ts7800-v2 lwsws[2408]: lwsws[2416]:    mounting callback://proto
Dec 11 11:23:39 ts7800-v2 lwsws[2408]: lwsws[2416]:  Using non-SSL mode
Dec 11 11:23:39 ts7800-v2 lwsws[2408]: lwsws[2416]: created client ssl context f
Dec 11 11:23:39 ts7800-v2 lwsws[2408]: lwsws[2416]: Unable to find interface eth
Dec 11 11:23:39 ts7800-v2 lwsws[2408]: lwsws[2416]: init server failed
Dec 11 11:23:39 ts7800-v2 lwsws[2408]: lwsws[2416]: Failed to create vhost local
Dec 11 11:23:39 ts7800-v2 lwsws[2408]: lwsws[2416]: /etc/lwsws/conf.d/test-serve
Dec 11 11:23:39 ts7800-v2 lwsws[2408]: lwsws[2416]: Context creation failed
Dec 11 11:23:39 ts7800-v2 lwsws[2408]: GPS THREAD created successfully
Dec 11 11:23:39 ts7800-v2 lwsws[2408]: MOTOR CONTROL THREAD created successfully
因此,服务处于活动状态并正在运行,但未建立eth0连接,因此web服务器libwebsockets web服务器LWSWS无法正常启动

我的问题是如何让以太网在引导时启动,以便web服务器可以启动并运行

在该服务的依赖项中,在其余服务启动之前,网络将显示在树中:

root@ts7800-v2:/etc/systemd/system# systemctl list-dependencies webserver.service
��● ��├��─system.slice
��● ��├��─network-online.target
��● ��│ ��└��─networking.service
��● ��└��─sysinit.target
��●   ��├��─dev-hugepages.mount
��●   ��├��─dev-mqueue.mount
��●   ��├��─kmod-static-nodes.service
��●   ��├��─proc-sys-fs-binfmt_misc.automount
��●   ��├��─sys-fs-fuse-connections.mount
��●   ��├��─sys-kernel-config.mount
��●   ��├��─sys-kernel-debug.mount
��●   ��├��─systemd-ask-password-console.path
��●   ��├��─systemd-binfmt.service
��●   ��├��─systemd-hwdb-update.service
��●   ��├��─systemd-journal-flush.service
��●   ��├��─systemd-journald.service
��●   ��├��─systemd-machine-id-commit.service
��●   ��├��─systemd-modules-load.service
��●   ��├��─systemd-random-seed.service
��●   ��├��─systemd-sysctl.service
��●   ��├��─systemd-timesyncd.service
��●   ��├��─systemd-tmpfiles-setup-dev.service

如果您能在web服务器启动之前就如何启动网络提出建议,我们将不胜感激。谢谢

我认为您缺少对网络接口的管理。有点像NetworkManager。如果您已经在使用systemd,那么systemd networkd可能是您的解决方案。请阅读ArchLinuxWiki以供参考。

当应用程序处于无头模式时,我必须让以太网连接自动启动。以下是etc/network/interfaces文件的目录:

root@ts7800-v2:/etc/network# cat interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

我添加了行auto eth0,现在在调用我的webserver.service之前启动了以太网。

这是一个很好的答案,但我发布了自己的答案来准确地解决这个问题。这个答案肯定能找到问题的根源。谢谢