Sometimes you need to make sure that only one instance of the same application can run at any given time. Although every platform defines different locking schemes, you can use the following technique as a platform-independent solution to this problem: at startup, the application should try to open a certain file in a specific directory. If the file is locked, it means that another instance of this app is already running. In that case, the newer instance should exit. The first instance that opens the file successfully is also responsible for closing it. However, if it terminates abnormally, the file lock will be released by the kernel after a certain amount of time.