название програмы должно быть меньше 8 символов и не содержать в себе upx ? =)
Не. Просто не должно начинаться с "/tmp/upx".
upx, зараза, создаёт временный файл со случайно сгенерированным именем, и запускает уже его. В результате проверка всегда врёт, что другие экземпляры не запущены.
На самом деле это всё - условие аварийного прерывания проверки, при котором возвращается false.
Но оно не будет работать правильно в случае upx'а из за того, что в имя файла-мьютекса добавляется имя екзешника (т. е. случайный мусор в данном случае).
Надо ещё продумать, а то я у себя просто запретил сжимать программу upx'ом: матюкнётся и встанет.