Запуск скрипта, который запускает другие приложения с использованием сервиса systemd
Наше приложение C ++ Qt графически запускается без X с указанием -qws
переключателя. Из-за этого я удалил и отключил графическое окружение на BeagleBone Black. Теперь, когда я включаю плату, я получаю стандартный текстовый экран входа в систему.
Когда я вхожу в систему как root с пустым паролем, я могу запустить скрипт, который устанавливает некоторые настройки для сенсорного экрана и т. Д., А затем запускает наше приложение. Это работает без нареканий.
Теперь нам нужно автоматически запускать это приложение при каждой загрузке, так как предполагается, что весь комплект будет дежурным в каком-то промышленном шкафу без какой-либо клавиатуры или мыши. Для этого я создал сервис systemd, но, к сожалению, он не работает. Когда я перезагружаю систему, наше приложение появляется на долю секунды, но почти мгновенно сворачивается и возвращается к экрану входа в систему.
Когда я вхожу в систему и пытаюсь запустить службу, она также не работает. Вот что systemctl status ivt.service
говорит:
ivt.service - IVT Startup Routines Loaded: loaded (/lib/systemd/system/ivt.service; enabled) Active: failed (Result: exit-code) since Sat 2000-01-01 00:35:26 UTC; 1min 39s ago Process: 499 ExecStart=/usr/bin/ivtstartup.sh (code=exited, status=139) Main PID: 403 (code=exited, status=139) CGroup: name=systemd:/system/ivt.service Jan 01 00:35:26 beaglebone ivtstartup.sh[499]: Shutdown clients... Jan 01 00:35:26 beaglebone ivtstartup.sh[499]: Shutdown servers... Jan 01 00:35:26 beaglebone ivtstartup.sh[499]: Shutdown PaPort1 ... Jan 01 00:35:26 beaglebone ivtstartup.sh[499]: PaPort1 shutdown completed. Jan 01 00:35:26 beaglebone ivtstartup.sh[499]: SYSTEM-SHUTDOWN COMPLETE. Jan 01 00:35:26 beaglebone ivtstartup.sh[499]: Unload drivers... Jan 01 00:35:26 beaglebone ivtstartup.sh[499]: CSystemManager::UnloadServers PaPort1 Jan 01 00:35:26 beaglebone ivtstartup.sh[499]: Unload drivers completed. Jan 01 00:35:26 beaglebone systemd[1]: Failed to start IVT Startup Routines. Jan 01 00:35:26 beaglebone systemd[1]: Unit ivt.service entered failed state
Это скрипт, который я хочу выполнить со службой (в /usr/bin/ivtstartup.sh
):
#!/bin/bash ifconfig eth0 172.17.6.136 netmask 255.255.248.0 up route add default gw 172.17.1.200 echo "nameserver 172.17.1.51" > /etc/resolv.conf ln -s /dev/ttyO2 /dev/ttyM0 /home/root/testbg & ( export TSLIB_TSDEVICE="/dev/input/touchscreen0"; export TSLIB_CALIBFILE="/etc/pointercal"; export QWS_MOUSE_PROTO="Tslib:/dev/input/touchscreen0"; bash -c '/home/root/testgui -qws'; )
И, наконец, это сервис /etc/systemd/system/ivt.service
:
[Unit] Description=IVT Startup Routines [Service] Type=forking ExecStart=/usr/bin/ivtstartup.sh [Install] WantedBy=multi-user.target
Когда я вхожу и запускаю /usr/bin/ivtstartup.sh
вручную, все работает. Приложение testbg
работает в фоновом режиме (используется для некоторой последовательной связи и т. Д.), И testgui
отображается и работает, как ожидалось.
В чем проблема с этой конфигурацией? Есть ли другой способ автоматического запуска этого скрипта без входа в систему вручную? Заранее спасибо!
0 ответов на вопрос
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
2
Повышенные привилегии для запуска приложений в Windows?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
-
7
Какие службы Windows можно безопасно отключить?
-
3
Ускорение загрузки OS X на годичной MBP
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
6
Как вы отключите звук запуска на Mac?