2017-12-11 46 views
0

私はsystemdを使用して、シングルボードコンピュータ(組み込み)プラットフォーム上で起動時に実行可能ファイルを開始します。私はこのアプリをヘッドレスモードで動作させ、ログインはしないようにして、ユーザーがウェブブラウザを通じて入力を制御するようにします。システム起動時に.service起動時にeth0が見つかりません

私はDebianを実行するTS-7800-V2を使用しています。ここで

は(ETC/systemdに/システム)私のサービス(webserver.service)が設定されている:

[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 

私が有効になっており、サービスを開始し、状態を確認しています

[email protected]:~# 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 

したがって、サービスはアクティブで実行中ですが、Webサーバー(libwebsockets WebサーバーLWSWS)が正しく起動できないようにeth0接続が確立されていません。

私の質問は、起動時にEthernetを起動してWebサーバーを起動して実行する方法です。このサービスの依存関係で

は、ネットワーキングサービスのスタートアップの残りの部分の前に木に示しています。ネットワークを取得する方法について

[email protected]:/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サーバが起動する前に開始しました。ありがとう!

+0

https://superuser.com/questions/502793/how-to-bring-network-up-at-boot-time-in-linux/503086#503086 – sawdust

答えて

1

あなたはネットワークインターフェイスの管理が欠けていると思います。 NetworkManagerのようなものです。すでにsystemdを使用している場合は、多分systemd-networkdがあなたのための解決策です。参考までにArchLinux Wikiのsystemd-networkdをお読みください。

+0

これは良い回答ですが、問題を正確に解決するための自分の答え。この答えは間違いなく問題の根源になります。ありがとう! – Gordon

0

アプリがヘッドレスモードのときに、自動起動するためにイーサネット接続を取得する必要がありました。ここetc/network/interfacesファイルの内容(猫)は次のとおりです。

[email protected]:/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 

私はライン「自動eth0の」を追加し、私のwebserver.serviceが呼び出される前に、今のイーサネットが起動されます。

関連する問題