---
name: "dmeventd"
section: "8"
platform: "linux"
package: "device-mapper"
version: "2.03.44-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/dmeventd"
---

# dmeventd(8)

Device-mapper event daemon

## NAME

dmeventd — Device-mapper event daemon

## SYNOPSIS

- **dmeventd**

  \[**-d** \[**-d** \[**-d**\]\]\] \[**-e**  *exit\_on\_path*\] \[**-f**\] \[**-g**  *seconds*\] \[**-h**\] \[**-i**\] \[**-l**\] \[**-R**\] \[**-V**\] \[**-?**\]

## DESCRIPTION

dmeventd is the event monitoring daemon for device-mapper devices. Library plugins can register and carry out actions triggered when particular events occur.

## OPTIONS

- **-d**

  Repeat from 1 to 3 times (**-d**, **-dd**, **-ddd**) to increase the detail of debug messages sent to syslog. Each extra **d** adds more debugging information.

- **-e** *exit\_on\_path*

  Specifies a file path.  When the daemon receives a signal (SIGINT, SIGTERM), the presence of this file allows the daemon to exit even if there are still monitored devices. This can help with system shutdown where devices have not been unmonitored properly. To disable this behavior set this to the empty string "". Default value is "*/run/nologin*".

- **-f**

  Don't fork, run in the foreground.

- **-g** *seconds*

  Set the grace period for monitoring thread cleanup (0-300 seconds, default: 10). During this period, monitoring threads that have finished processing events will wait for potential reuse rather than immediately terminating. If the same device and plugin combination is registered again within the grace period, the existing thread is reused, significantly reducing overhead. Set to 0 to disable thread reuse.

- **-h**

  Show help information.

- **-i**

  Query the running daemon instance for the status information. The format is internal and unstable and it is targeted for developers. Format may change between versions.

- **-l**

  Log through stdout and stderr instead of syslog. This option works only with the -f option; otherwise it is ignored.

- **-?**

  Show help information on stderr.

- **-R**

  Replace a running dmeventd instance. The running dmeventd must be version 2.02.77 or newer. The new dmeventd instance will obtain a list of devices and events to monitor from the currently running daemon.

- **-V**

  Show version of dmeventd.

## LVM PLUGINS

- **Mirror**

  Attempts to handle device failure automatically. See [**lvm.conf**(5)](/lvm.conf/5.md).

- **Raid**

  Attempts to handle device failure automatically. See [**lvm.conf**(5)](/lvm.conf/5.md).

- **Snapshot**

  Monitors how full a snapshot is becoming and emits a warning to syslog when it exceeds 80% full. The warning is repeated when 85%, 90% and 95% of the snapshot is filled. See [**lvm.conf**(5)](/lvm.conf/5.md). A snapshot that runs out of space becomes invalid and when it is mounted, it is unmounted if possible.

- **Thin**

  Monitors how full the thin pool's data and metadata are becoming and emits a warning to syslog when either exceeds 80% full. The warning is repeated when more than 85%, 90% and 95% of the thin pool is filled. See [**lvm.conf**(5)](/lvm.conf/5.md). When a thin pool fills over 50% (data or metadata), the thin plugin calls the configured **dmeventd/thin\_command** with every 5% increase. With the default setting it calls internal **lvm lvextend --use-policies** to resize the thin pool when it exceeds the configured threshold **activation/thin\_pool\_autoextend\_threshold**. If the command fails, the dmeventd thin plugin will keep retrying execution with an increasing time delay between retries, up to 42 minutes. The user may also configure an external command to support more advanced maintenance operations of a thin pool. For example, the external command can remove unneeded snapshots, use [**fstrim**(8)](/fstrim/8.md) to recover free space in a thin pool, or use **lvextend --use-policies** if other actions have not released enough space. The command is executed with the environment variable **LVM\_RUN\_BY\_DMEVENTD=1** so any lvm2 command executed in this environment will not try to interact with dmeventd. To see the fullness of a thin pool, the command may check these two environment variables **DMEVENTD\_THIN\_POOL\_DATA** and **DMEVENTD\_THIN\_POOL\_METADATA**. The command can also read status with tools like [**lvs**(8)](/lvs/8.md).

- **Vdo**

  Monitors how full a VDO pool's data is becoming and emits a warning to syslog when it exceeds 80% full. The warning is repeated when more than 85%, 90% and 95% of the VDO pool is filled. See [**lvm.conf**(5)](/lvm.conf/5.md). When a VDO pool fills over 50%, the vdo plugin calls the configured **dmeventd/vdo\_command** with every 5% increase. With the default setting it calls internal **lvm lvextend --use-policies** to resize the VDO pool when it exceeds the configured threshold **activation/vdo\_pool\_autoextend\_threshold**. If the command fails, the dmeventd vdo plugin will keep retrying execution with an increasing time delay between retries, up to 42 minutes. The user may also configure an external command to support more advanced maintenance operations of a VDO pool. For example, the external command can free up unused space with [**fstrim**(8)](/fstrim/8.md), or use **lvextend --use-policies** if other actions have not released enough space. The command is executed with the environment variable **LVM\_RUN\_BY\_DMEVENTD=1** so any lvm2 command executed in this environment will not try to interact with dmeventd. To see the fullness of a VDO pool, the command may check the **DMEVENTD\_VDO\_POOL** environment variable. The command can also read status with tools like [**lvs**(8)](/lvs/8.md).

## ENVIRONMENT VARIABLES

- **DMEVENTD\_THIN\_POOL\_DATA**

  Variable is set by the thin plugin and is available to the executed program. Value represents actual usage of thin pool data volume. Variable is not set when error event is processed.

- **DMEVENTD\_THIN\_POOL\_METADATA**

  Variable is set by the thin plugin and is available to the executed program. Value represents actual usage of thin pool metadata volume. Variable is not set when error event is processed.

- **DMEVENTD\_VDO\_POOL**

  Variable is set by the vdo plugin and is available to the executed program. Value represents actual usage of VDO pool data volume. Variable is not set when error event is processed.

- **LVM\_RUN\_BY\_DMEVENTD**

  Variable is set by the thin and vdo plugins to prohibit recursive interaction with dmeventd by any lvm2 command run from a thin\_command or vdo\_command environment.

## SEE ALSO

[**lvm**(8)](/lvm/8.md), [**lvm.conf**(5)](/lvm.conf/5.md), [**lvextend**(8)](/lvextend/8.md),

[**fstrim**(8)](/fstrim/8.md)
