Skip Navigation Links
Exit Print View
| Oracle Solaris Cluster Reference Manual Oracle Solaris Cluster 4.1

Search Scope:

- This Document
- Entire Library

### halockrun

- run a child program while holding a file lock

### Synopsis

    /usr/cluster/bin/halockrun [-nsv] [-e exitcode] lockfilename
     prog [args]

## Description

The `halockrun` utility provides a convenient means to claim a file lock on a file and run a program while holding that lock. As this utility supports script locking, this utility is useful when programming in scripting languages such as the Bourne shell. See `sh`(1).

`halockrun` opens the file lockfilename and claims an exclusive mode file lock on the entire file. See `fcntl`(2). Then it runs the program prog with arguments args as a child process and waits for the child process to exit. When the child exits, `halockrun` releases the lock, and exits with the same exit code with which the child exited.

The overall effect is that the child prog is run as a critical section, and that this critical section is well-formed, in that no matter how the child terminates, the lock is released.

If the file lockfilename cannot be opened or created, then `halockrun` prints an error message on stderr and exits with exit code `99`.

You can run this command in the global zone. The command affects only the global zone in which you issue the command.

## Options

The following options are supported:

`-e` exitcode

  Normally, errors detected by `halockrun` exit with exit code `99`. The `-e` option provides a means to change this special exit code to a different value.

`-n`

  The lock should be requested in non-blocking mode: if the lock cannot be granted immediately, `halockrun` exits immediately, with exit code `1`, without running prog. This behavior is not affected by the `-e` option.

  Without the `-n` option, the lock is requested in blocking mode, thus, the `halockrun` utility blocks waiting for the lock to become available.

`-s`

  Claim the file lock in shared mode, rather than in exclusive mode.

`-v`

  Verbose output, on `stderr`.

## Exit Status

Errors detected by `halockrun` itself, such that the child process was never started, cause `halockrun` to exit with exit code `99`. (This exit code value can be changed to a different value using the `-e` option. See `OPTIONS`.

Otherwise, `halockrun` exits with the same exit code with which the child exited.

## Attributes

See `attributes`(5) for descriptions of the following attributes:

ATTRIBUTE TYPE | ATTRIBUTE VALUE
--- | ---
Availability | ha-cluster/system/core
Interface Stability | Evolving

## See Also

`fcntl`(2), `attributes`(5)

Copyright © 2000, 2012, Oracle and/or its affiliates. All rights reserved. Legal Notices |