Запуск службы на Linux Raspbian - PullRequest
1 голос
/ 14 января 2020

Я надеюсь автоматически запустить программу при загрузке на моем Raspberry Pi 3 B +, на котором работает Raspbian Buster. Программа находится в Java (Изначально создавалась с помощью Processing, но я могу запустить ее с помощью сценария оболочки.

Я пытался использовать systemctl для этого и создал "reader.service ", переместил его в соответствующую папку и разрешил запускать при загрузке. Но после перезапуска нет никаких признаков того, что программа работает. (Должно открыться новое окно, чтобы показать, что программа работает, но ничего не делает .)

Проверка состояния службы возвращает

reader.service - Reader Service
Loaded: loaded(/etc/systemd/system/reader.service; enabled; vendor present: enabled)
Active: active (running) since Sat 2020-01-04 22:53:26 PST; 483ms ago
Main PID: 1039 (Reader_0_6)
Tasks: 9 (limit: 2200)
Memory: 5.5M
CGroup: /system.slice/reader.service

Хотя использование терминала или двойной щелчок на самом скрипте оболочки запускает программу успешно.

И только для полноты картины Ниже я приведу фактический файл reader.service.

[Unit]
Description=Reader Service
After=network.target

[Service]
ExecStart=/home/pi/Desktop/Readerv0.6/application.linux64/Reader_0_6
StandardOutput=inherit
StandardError=inherit
Restart=always
User=pi

[Install]
WantedBy=multi-user.target

Я очень благодарен за любой ответ или советы, чтобы идти в правильном направлении, и буду рад добавить больше информации!

РЕДАКТИРОВАТЬ: Смотря дальше, как предложено, я запустил sudo journalctl -f -u reader.service , чтобы получить журналы во время работы. g.

systemd[1]: Started Reader Service.
Reader_0_6[19468]: Cannot run sketch without a display. Read this for possible solutions:
Reader_0_6[19468]: https://github.com/processing/processing/wiki/Running-without-a-Display
systemd[1]: reader.service: Main process exited, code=exited, status=1/FAILURE
systemd[1]: reader.service: Failed with result 'exit-code'.

Но по ссылке можно найти решения для запуска безголовых приложений, и я заинтересован в использовании дисплея. У меня HDMI подключен напрямую, поэтому проблем не должно быть. Есть ли способ передать $ DISPLAY при запуске команды, и после изменения reader.service вместо этого сказать After=graphical.target, он возвращает те же журналы.

...