Я использую systemd для запуска исполняемого файла во время загрузки на платформе одноплатного компьютера (встроенной). Я хочу, чтобы это приложение работало в автономном режиме - без входа в систему - и пользователь будет управлять вводом через веб-браузер.
Я использую TS-7800-V2, на котором работает Debian.
Вот мой сервис (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 не устанавливается, поэтому веб-сервер (веб-сервер libwebsockets LWSWS) не может запуститься должным образом.
У меня вопрос: как запустить Ethernet при загрузке, чтобы веб-сервер мог запускаться и работать?
В зависимостях для этой службы сеть отображается в дереве перед запуском остальной части службы:
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
Мы будем признательны за совет о том, как запустить сеть до запуска веб-сервера. Спасибо!