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

и в случае если if (windows != NULL) то возвращаем диалоговое окно с уведомлением что окно уже открыто.
Если где-то ошибаюсь то извиняйте
Могу предположить такой алгоритм:
1. получить список https://docs.gtk.org/gtk3/method.Application.get_windows.html открытых окон этого приложения записав их в GList
2. Передаем интовую переменную Статус из команды g_application_run https://docs.gtk.org/gio/method.Application.run.html
3. и в случае если if (windows != NULL) то возвращаем диалоговое окно с уведомлением что окно уже открыто.
Если где-то ошибаюсь то извиняйте
и при попытке получить GtkApplication, возвращается NULL.
Да и в описании функции прямым текстом написано что возвращаются окна, связанные с конкретным GtkApplication, а не со всеми запущенными инстанциями утилиты
и при попытке получить GtkApplication, возвращается NULL.
Да и в описании функции прямым текстом написано что возвращаются окна, связанные с конкретным GtkApplication, а не со всеми запущенными инстанциями утилиты
Хотите 3. Забирайте.

Хотите 4. Бог с ним тоже

Но один лишь должен остаться
Теоретически 3и подряд установки можно выполнять, только лог у всех трёх будет один.
Может быть не стоит запрещать несколько установок запускать.
Могу разбить ЛОГ для каждой установки что-бы был отдельно.
Теоретически 3и подряд установки можно выполнять, только лог у всех трёх будет один.
Может быть не стоит запрещать несколько установок запускать.
Могу разбить ЛОГ для каждой установки что-бы был отдельно.
Цель команды, найти утановщик и его окно и сделать его активным.
Для pkexec и sudo нужно передавать дисплей и пользователя реального. Если запускать от sudo, то так sudo -E.
Если ты хочешь проверку сделать внутри установщика, то запускай
pidof ubinstall-gtk
Если возврат более 1 пида, то установщик запущен второй раз.
Цель команды, найти утановщик и его окно и сделать его активным.
Для `pkexec` и `sudo` нужно передавать дисплей и пользователя реального. Если запускать от `sudo`, то так `sudo -E`.
Если ты хочешь проверку сделать внутри установщика, то запускай
```
pidof ubinstall-gtk
```
Если возврат более 1 пида, то установщик запущен второй раз.
Сейчас возможно включить 2 окна установки системы, и одно из окон будет выдавать ошибку но дублировать то что происходит на рабочем окне. Спрашивается. Зачем это нужно?

если у тебя есть понимание как это сделать я с радостью тебя выслушаю
Могу предположить такой алгоритм:
Если где-то ошибаюсь то извиняйте
проблема в том что я не использую GtkApplication ни в одной утилите
Выполнить
ubinstall-gtkимя приложения подставитьесли истина, то приложение станет активным, закончить открытие окна
иначе открыть окно установщика
и при попытке получить GtkApplication, возвращается NULL.
Да и в описании функции прямым текстом написано что возвращаются окна, связанные с конкретным GtkApplication, а не со всеми запущенными инстанциями утилиты
Тем не менее я понял как это сделать через гтк
d6de60e975Хотите 3. Забирайте.

Хотите 4. Бог с ним тоже

Но один лишь должен остаться
Теоретически 3и подряд установки можно выполнять, только лог у всех трёх будет один.
Может быть не стоит запрещать несколько установок запускать.
Могу разбить ЛОГ для каждой установки что-бы был отдельно.
Выше я писал, что нужно сделать, что-бы не запускался второй экземпляр.
фиг пойми как она работает, эта проверка за уникальность приложения. От пользователя работает нормально, через pkexec и sudo не работает
Цель команды, найти утановщик и его окно и сделать его активным.
Для
pkexecиsudoнужно передавать дисплей и пользователя реального. Если запускать отsudo, то такsudo -E.Если ты хочешь проверку сделать внутри установщика, то запускай
Если возврат более 1 пида, то установщик запущен второй раз.
Делай через
pidof ubinstall-gtkкак выше написал, простая проверка.вот я про неё и пишу
Если возврат более 1 пида, то установщик запущен второй раз.
т.е. если в выводе два пида и более, то ты запустил второй экземпляр приложения
я вижу что он возвращает 0 в статус если установщик запущен и 1 если не запущен без различий с 1 или 2 инстанциями
Что по итогу по этой задаче?
Я стёр всё что делал, почему - писал выше