---
name: "shlock"
section: "8"
platform: "linux"
package: "inn"
version: "2.7.4-4"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/shlock/8"
---

# shlock(8)

Create lock files for use in shell scripts

## NAME

shlock - Create lock files for use in shell scripts

## SYNOPSIS

**shlock** \[**-b**\|**-c**\|**-u**\] **-f** *name* **-p** *pid*

## DESCRIPTION

**shlock** tries to create a lock file named *name* and write the process ID *pid* into it.  If the file already exists, **shlock** will read the process ID from the file and test to see whether the process is currently running.  If the process exists, then the file will not be created.  *shlock* exits with a zero status if it could create the lock file, or non-zero if the file refers to a currently active process.

A Perl wrapper around **shlock** can be used via the `"INN::Utils::Shlock"` module.

## OPTIONS

- **-b**

  Process IDs are normally read and written in ASCII.  If the **-b** flag is used, then they will be written as a binary int.

- **-c**

  If the **-c** flag is used, then **shlock** will not create a lock file, but will instead use the file to see if the lock is held by another program. If the lock is valid, the program will exit with a non-zero status; if the lock is not valid (i.e. invoking **shlock** without the flag would have succeeded), then the program will exit with a zero status.

- **-f** *name*

  *name* is the name of the lock file **shlock** attempts to create. If the file already exists, it will read the process ID from the file and exit with a non-zero status if this process is currently active.

- **-p** *pid*

  *pid* is the process ID to write into the file *name*.

- **-u**

  For compatibility with other systems, the **-u** flag is accepted as a synonym for **-b** since binary locks are used by many UUCP packages.

## EXAMPLES

The following example shows how **shlock** would be used within a shell script:

```
    LOCK=<pathrun in inn.conf>/LOCK.send
    trap 'rm -f ${LOCK} ; exit 1' 1 2 3 15
    if shlock -p $$ -f ${LOCK} ; then
        # Do appropriate work.
    else
        echo "Locked by `cat ${LOCK}`"
    fi
```

## HISTORY

Written by Rich $alz \<rsalz@uunet.uu.net\> for InterNetNews after a description of HDB UUCP locking given by Peter Honeyman, and improved by Berend Reitsma to solve a race condition. Converted to POD by Julien Elie.

## SEE ALSO

[INN::Utils::Shlock(3pm)](/INN::Utils::Shlock/3pm.md).
