Как запустить приложение GUI при запуске в Linux Ubuntu

У меня есть приложение с графическим интерфейсом, созданное в Qt, и я не хочу запускать его при загрузке рабочего стола. Я попытался сделать это из терминала, как это:

sudo cp MyApp /etc/init.d
sudo chmode 0777 /etc/init.d/MyApp
sudo update-rc.d MyApp defaults

но когда я перезагружаю компьютер, он выдает ошибку программы и спрашивает, хочу ли я сообщить об этом.

Может кто-нибудь сказать мне, в чем может быть проблема, и как ее решить? Я должен отметить, что я новичок в Linux.

РЕДАКТИРОВАТЬ:

Я также попытался создать сценарий, который запускает эту программу, и запустить этот сценарий при запуске таким же образом, но он дал мне ту же ошибку.

Я не знаю, важно ли это, но при запуске этого приложения запускается поток, считывающий данные из последовательного порта.

2 ответа

Вы не запускаете приложения с графическим интерфейсом в /usr/include/init.d, Это системные демоны, которые не имеют ничего общего с GUI. Если вы хотите запустить приложение в начале сеанса X, вы должны вместо этого взглянуть на справочную страницу для X session.

http://manpages.ubuntu.com/manpages/natty/man5/X session.5.html

Например, моя ~/.xsession

xkbset r rate 250 25
startfluxbox

Вот xkbset запускается под моим пользователем, как будто я запустил его. На самом деле он имеет доступ к DISPLAY и другим ресурсам X, чего никогда не делают системные демоны. Для всей системы это в /etc/X11/Xsession.d или что бы ваша система не использовала.

Это решение относится к Ubuntu для запуска программ после входа в систему.

В меню действий найдитеStartupи найтиStartup Applications Preferences.

Если его там нет, установите с помощью

      sudo apt install gnome-startup-applications

Затем добавьте свою программу

Кредит: https://linuxconfig.org/how-to-autostart-applications-on-ubuntu-20-04-focal-fossa-linux

Другие вопросы по тегам