hal-lock - lock an interface
hal-lock [options]
hal-lock can be used to acquire a lock on a given interface either on a
given device or globally. For more information about both the big picture and
the semantics of
HAL locks, refer to the
HAL spec which can be
found in
/usr/local/share/doc/hal/spec/hal-spec.html depending on the
distribution.
The following options are supported:
- --interface
- The name of the interface to lock.
- --run
- Program to run if the lock was acquired.
- --udi
- The UDI (Unique Device Identifier) of the device object. If this is
ommitted, the global lock will be tried.
- --exclusive
- Whether the lock can be held by others.
- --exit-with-lock
- Kill the program if the acquired lock is lost. This only makes sense if
you pass a specific UDI due to the semantics of HAL locks.
- --exit-with-dev
- Kill the program if the device is removed. This only makes sense if you
pass a specific UDI due to the semantics of HAL locks.
- --help
- Print out usage.
- --version
- Print the version.
This program will attempt to grab a lock on a given interface. Unless, a
specific
UDI is given, the global lock will be tried. If the lock was
succesfully acquired the program specified by the option --run will be run and
upon termination this program will exit with exit code 0. If the lock wasn't
acquired or an error occured while taking the lock, this program will exit
with a non-zero exit code and the given program will not be run.
This program is only useful for launching software that doesn't use HAL at all
(since such software launched using
hal-lock would be locked out
itself); for example a partition table editor
part-foo may use wrapper
script like this
hal-lock --interface org.freedesktop.Hal.Device.Storage --exclusive --run
/path/to/part-foo-program
Please send bug reports to either the distribution or the HAL mailing list, see
http://lists.freedesktop.org/mailman/listinfo/hal on how to subscribe.
hald(8),
lshal(1),
hal-get-property(1),
hal-set-property(1),
hal-find-by-property(1),
hal-find-by-capability(1)
Written by David Zeuthen <david@fubar.dk> with a lot of help from many
others.