tags:

views:

731

answers:

2

I need to check if my Qt GUI application is already running in the current X session. That is, I want to forbid running several instances of it. But running several instances by different users or by the same user on another (i.e. remote) X server should be allowed.

How can this be done?

Thank you.

+9  A: 

Qt has already a solution to single instance per user: QtSingleApplication. Check if this suits you.

Marcin Gil
A: 

Create a dotfile (say, ~/.yourapp-xsessionID) when launching the program, and delete it when exiting; it the file already exists (i.e. it's already running) print out an error message and exit.

For the problems with this approach, see Firefox.

janneb