Here's the problem I'm trying to solve:  SMF service is configured to launch 
things like VirtualBox during startup / shutdown.  This startup process can 
take a long time (10, 20 minutes) so if there's a problem of any kind for any 
reason, you might do things like enable and disable or refresh the service ... 
but each time the script gets launched, it's not aware of the previous one.  
I'm really looking for a good way to allow multiple instances of some shell 
script to signal each other.  Let the earlier instances die and the later 
instances take over control.

This problem has two parts.  Atomicity of signaling operations (acquiring / 
releasing mutex, etc), and inter-process signaling.  (Let the later instance 
signal the earlier instance that it should die.)  It seems easy enough, as long 
as you have a good atomic operation for locking, the process that acquired lock 
can write its PID into a file, and later instances can "kill" that PID.

I'm looking around, and not finding any great answers.  So far, using mkdir, 
it's easy to see there exists a way to do mutex locking, and you could easily 
write your PID into the subdir that was just created; unfortunately, the 
problem is when a script gets killed, leaving the stale lock.  So I'm looking 
for something better than "mkdir" to use for locking.

I see there are a bunch of C constructs available ... mutex_init, etc.  Surely 
there must be a wrapper application around this kind of thing, right?

Thanks, everyone, for any suggestions you may offer.
_______________________________________________
OpenIndiana-discuss mailing list
[email protected]
http://openindiana.org/mailman/listinfo/openindiana-discuss

Reply via email to