Мне нужно проверить, запущено ли уже мое приложение Qt GUI в текущей сессии X . То есть я хочу запретить запуск нескольких его экземпляров. Но работает несколько экземпляров другие пользователи или один и тот же пользователь на другом (то есть удаленном) X-сервере должен быть разрешен.
Как это можно сделать?
Спасибо.
Qt уже имеет решение для одного экземпляра на пользователя: QtSingleApplication . Проверьте, подходит ли вам это.
Создайте точечный файл (скажем, ~ / .yourapp-xsessionID) при запуске программы и удалите его при выходе; если файл уже существует (т. е. он уже запущен), распечатайте сообщение об ошибке и выйдите.
О проблемах с этим подходом см. Firefox.