Как запустить приложение 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