You could always build your own locking mechanism much like a semaphore or a mutexed monitor by using touch, file_exists and writing to file by creating blank files to lock unwanted actions.
While a certain file exists, the action must wait.
This way you can use several different files to lock different actions globally through one monitor object.
I have done so in the past and it has worked nicely.