Приложение Qt C ++: автоматическая установка в Linux

Я портирую код Qt Windows / VC ++ на Linux / GCC. Приложение может добавить свой собственный ярлык в папку автозапуска Windows, чтобы приложение запускалось после входа в систему.

Я хочу сделать то же самое в Linux. Я использую Kubuntu 15.10, но решение должно работать практически для всех (или, по крайней мере, для большинства) вариантов Linux. И он должен работать без прав суперпользователя (или он должен запрашивать права автоматически).

Я искал в Интернете и нашел два решения:

  1. Добавить файл записи рабочего стола в $HOME/.config/autostart
  2. Добавить символическую ссылку на /etc/init.d/

Будут ли они оба работать во всех дистрибутивах Linux? Какие есть отличия? Что должно быть предпочтительным?

Также я хотел бы знать, должен ли я сделать это путем программного запуска команды оболочки или есть какой-нибудь нативный API, который я мог бы использовать в C / C ++ (включая простое обнаружение ошибок).

4

Решение

Вы можете добавить приложение различными способами.

  1. Через систему инициализации Linux. Для новейшей ОС Linux стандартным является systemd. В этом случае вам нужно создать системный модуль для вашего приложения.
  2. Через менеджер рабочего стола, такие как gnome, kde и, возможно, другие. В этом случае вам также необходимо создать спецификацию для автозапуска вашего приложения..
  3. Через bash файлы

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

1

Другие решения

Я поместил проект в GitHub для управления функцией автозапуска в разных ОС. Это написано в Qt.
Пожалуйста, проверьте его и дайте мне знать, если у вас есть какие-либо проблемы с его использованием:
https://github.com/b00f/qautostart

0