---
name: "gpiomon"
section: "1"
platform: "linux"
package: "libgpiod"
version: "2.3.1-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/gpiomon"
---

# gpiomon(1)

libgpiod command-line utility

## NAME

gpiomon - libgpiod command-line utility

## SYNOPSIS

**gpiomon** \[*OPTIONS*\] *\<line\>*...

## DESCRIPTION

Wait for events on GPIO lines and print them to standard output.

Lines are specified by name, or optionally by offset if the chip option is provided.

## OPTIONS

- **--banner**

  display a banner on successful startup

- **-b**, **--bias** \<bias\>

  specify the line bias Possible values: 'pull-down', 'pull-up', 'disabled'. (default is to leave bias unchanged)

- **--by-name**

  treat lines as names even if they would parse as an offset

- **-c**, **--chip** \<chip\>

  restrict scope to a particular chip

**-C**, **--consumer** \<name\> consumer name applied to requested lines (default is 'gpiomon')

- **-e**, **--edges** \<edges\>

  specify the edges to monitor Possible values: 'falling', 'rising', 'both'. (default is 'both')

- **-E**, **--event-clock** \<clock\>

  specify the source clock for event timestamps Possible values: 'monotonic', 'realtime', 'hte'. (default is 'monotonic') By default 'realtime' is formatted as UTC, others as raw u64.

- **-h**, **--help**

  display this help and exit

- **-F**, **--format** \<fmt\>

  specify a custom output format

- **--idle-timeout** \<period\>

  exit gracefully if no events occur for the period specified

- **-l**, **--active-low**

  treat the line as active low, flipping the sense of rising and falling edges

- **--localtime**

  format event timestamps as local time

- **-n**, **--num-events** \<num\>

  exit after processing num events

- **-p**, **--debounce-period** \<period\>

  debounce the line(s) with the specified period

- **-q**, **--quiet**

  don't generate any output

- **-I**, **--initial-state**

  print initial states of the lines

- **-N**, **--numeric**

  display line values as '0' (inactive) or '1' (active)

- **-s**, **--strict**

  abort if requested line names are not unique

- **--unquoted**

  don't quote line or consumer names

- **--utc**

  format event timestamps as UTC (default for 'realtime')

- **-v**, **--version**

  output version information and exit

### Chips:

-

  A GPIO chip may be identified by number, name, or path. e.g. '0', 'gpiochip0', and '/dev/gpiochip0' all refer to the same chip.

### Periods:

-

  Periods are taken as milliseconds unless units are specified. e.g. 10us. Supported units are 'm', 's', 'ms', and 'us' for minutes, seconds, milliseconds and microseconds respectively.

### Format specifiers:

- %o

  GPIO line offset

- %l

  GPIO line name

- %c

  GPIO chip name

- %e

  numeric edge event type ('1' - rising or '2' - falling)

- %E

  edge event type ('rising' or 'falling')

- %S

  event timestamp as seconds

- %U

  event timestamp as UTC

- %L

  event timestamp as local time

## AUTHOR

Bartosz Golaszewski \<brgl@kernel.org\>

## REPORTING BUGS

Report bugs to:\
     Bartosz Golaszewski \<brgl@kernel.org\>\
     linux-gpio \<linux-gpio@vger.kernel.org\>

## COPYRIGHT

Copyright © 2017-2023 Bartosz Golaszewski License: GPL-2.0-or-later\
 This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
