Как проверить, запущено ли приложение Qt GUI (в Linux)?

Мне нужно проверить, запущено ли мое приложение Qt GUI в текущем X-сеансе. То есть я хочу запретить запуск нескольких его экземпляров. Но запуск нескольких экземпляров разными пользователями или одним и тем же пользователем на другом (т.е. удаленном) X-сервере должен быть разрешен.

Как это может быть сделано?


person Michael    schedule 02.06.2009    source источник


Ответы (2)


В Qt уже есть решение для одного экземпляра для каждого пользователя: QtSingleApplication. Проверьте, подходит ли вам это.

person Marcin Gil    schedule 02.06.2009

Создайте точечный файл (скажем, ~/.yourapp-xsessionID) при запуске программы и удалите его при выходе; если файл уже существует (т. е. он уже запущен), распечатайте сообщение об ошибке и выйдите.

О проблемах с этим подходом см. Firefox.

person janneb    schedule 02.06.2009