OPTIONS¶
-d, --debug
Print debug messages to standard error. This option is
  implied in udevadm test and udevadm test-builtin commands.
-h, --help
Print a short help text and exit.
udevadm info [options] [devpath|file|unit]¶
Query the udev database for device information.
Positional arguments should be used to specify one or more
    devices. Each one may be a device name (in which case it must start with
    /dev/), a sys path (in which case it must start with /sys/), or a systemd
    device unit name (in which case it must end with ".device", see
    systemd.device(5)).
-q, --query=TYPE
Query the database for the specified type of device data.
  Valid TYPEs are: name, symlink, path,
  property, all.
--property=NAME
When showing device properties using the
  
--query=property option, limit display to properties specified in the
  argument. The argument should be a comma-separated list of property names. If
  not specified, all known properties are shown.
Added in version 250.
--value
When showing device properties using the
  
--query=property option, print only their values, and skip the property
  name and "=".
Cannot be used together with -x/--export or
    -P/--export-prefix.
Added in version 250.
-p, --path=DEVPATH
The /sys/ path of the device to query, e.g.
  [/sys/]/class/block/sda. This option is an alternative to the positional
  argument with a /sys/ prefix. udevadm info --path=/class/block/sda is
  equivalent to udevadm info /sys/class/block/sda.
-n, --name=FILE
The name of the device node or a symlink to query, e.g.
  [/dev/]/sda. This option is an alternative to the positional argument with a
  /dev/ prefix. udevadm info --name=sda is equivalent to udevadm info
  /dev/sda.
-r, --root
Print absolute paths in name or symlink
  query.
-a, --attribute-walk
Print all sysfs properties of the specified device that
  can be used in udev rules to match the specified device. It prints all devices
  along the chain, up to the root of sysfs that can be used in udev rules.
This switch supports JSON output mode (see --json= below).
    Note that because this switch generates multiple JSON objects, JSON-SEQ mode
    is automatically enabled (RFC7464). (Note: tools such as jq[1]
    natively support JSON-SEQ via the --seq switch.)
-t, --tree
Display a sysfs tree. This recursively iterates through
  the sysfs hierarchy and displays it in a tree structure. If a path is
  specified only the subtree below and its parent directories are shown. This
  will show both device and subsystem items.
Added in version 251.
-x, --export
Print output as key/value pairs. Values are enclosed in
  single quotes. This takes effects only when --query=property or
  --device-id-of-file=FILE is specified.
-P, --export-prefix=NAME
Add a prefix to the key name of exported values. This
  implies --export.
-d, --device-id-of-file=FILE
Print major/minor numbers of the underlying device, where
  the file lives on. If this is specified, all positional arguments are
  ignored.
-e, --export-db
Export the content of the udev database.
-c, --cleanup-db
Cleanup the udev database.
-w[SECONDS],
    --wait-for-initialization[=SECONDS]
Wait for device to be initialized. If argument
  
SECONDS is not specified, the default is to wait forever.
Added in version 243.
--subsystem-match[=SUBSYSTEM],
    --subsystem-nomatch[=SUBSYSTEM]
When used with 
--export-db, only show devices of
  or not of the given subsystem respectively.
Added in version 255.
--attr-match[=FILE[=VALUE]],
    --attr-nomatch[=FILE[=VALUE]]
When used with 
--export-db, only show devices
  matching or not matching the given attribute respectively.
Added in version 255.
--property-match[=KEY=VALUE]
When used with 
--export-db, only show devices
  matching the given property and value.
Added in version 255.
--tag-match[=TAG]
When used with 
--export-db, only show devices with
  the given tag.
Added in version 255.
--sysname-match[=NAME]
When used with 
--export-db, only show devices with
  the given "/sys" path.
Added in version 255.
--name-match[=NAME]
When used with 
--export-db, only show devices with
  the given name in "/dev".
Added in version 255.
--parent-match[=NAME]
When used with 
--export-db, only show devices with
  the given parent device.
Added in version 255.
--initialized-match, --initialized-nomatch
When used with 
--export-db, only show devices that
  are initialized or not initialized respectively.
Added in version 255.
--json=MODE
Shows output formatted as JSON. Expects one of
  "short" (for the shortest possible output without any redundant
  whitespace or line breaks), "pretty" (for a pretty version of the
  same, with indentation and line breaks) or "off" (to turn off JSON
  output, the default).
-h, --help
Print a short help text and exit.
--no-pager
Do not pipe output into a pager.
The generated output shows the current device database entry in a
    terse format. Each line shown is prefixed with one of the following
    characters:
Table 1. udevadm info output prefixes
  
    | Prefix | Meaning | 
  
    | "P:" | Device path in /sys/ | 
  
    | "M:" | Device name in /sys/ (i.e. the last component of "P:") | 
  
    | "R:" | Device number in /sys/ (i.e. the numeric suffix of the last component of
      "P:") | 
  
    | "J:" | Device ID | 
  
    | "U:" | Kernel subsystem | 
  
    | "B:" | Driver subsystem | 
  
    | "T:" | Kernel device type within subsystem | 
  
    | "D:" | Kernel device node major/minor | 
  
    | "I:" | Network interface index | 
  
    | "N:" | Kernel device node name | 
  
    | "L:" | Device node symlink priority | 
  
    | "S:" | Device node symlink | 
  
    | "Q:" | Block device sequence number (DISKSEQ) | 
  
    | "V:" | Attached driver | 
  
    | "E:" | Device property | 
udevadm trigger [options] [devpath|file|unit]¶
Request device events from the kernel. Primarily used to replay
    events at system coldplug time.
  
Takes device specifications as positional arguments. See the
    description of info above.
-v, --verbose
Print the list of devices which will be triggered.
-n, --dry-run
Do not actually trigger the event.
-q, --quiet
Suppress error logging in triggering events.
Added in version 248.
-t, --type=TYPE
Trigger a specific type of devices. Valid types are
  "all", "devices", and "subsystems". The default
  value is "devices".
-c, --action=ACTION
Type of event to be triggered. Possible actions are
  "add", "remove", "change", "move",
  "online", "offline", "bind", and
  "unbind". Also, the special value "help" can be used to
  list the possible actions. The default value is "change".
--prioritized-subsystem=SUBSYSTEM[,SUBSYSTEM...]
Takes a comma separated list of subsystems. When
  triggering events for devices, the devices from the specified subsystems and
  their parents are triggered first. For example, if
  
--prioritized-subsystem=block,net, then firstly all block devices and
  their parents are triggered, in the next all network devices and their parents
  are triggered, and lastly the other devices are triggered. This option can be
  specified multiple times, and in that case the lists of the subsystems will be
  merged. That is, 
--prioritized-subsystem=block
  --prioritized-subsystem=net is equivalent to
  
--prioritized-subsystem=block,net.
Added in version 251.
-s, --subsystem-match=SUBSYSTEM
Trigger events for devices which belong to a matching
  subsystem. This option supports shell style pattern matching. When this option
  is specified more than once, then each matching result is ORed, that is, all
  the devices in each subsystem are triggered.
-S, --subsystem-nomatch=SUBSYSTEM
Do not trigger events for devices which belong to a
  matching subsystem. This option supports shell style pattern matching. When
  this option is specified more than once, then each matching result is ANDed,
  that is, devices which do not match all specified subsystems are
  triggered.
-a,
    --attr-match=ATTRIBUTE=VALUE
Trigger events for devices with a matching sysfs
  attribute. If a value is specified along with the attribute name, the content
  of the attribute is matched against the given value using shell style pattern
  matching. If no value is specified, the existence of the sysfs attribute is
  checked. When this option is specified multiple times, then each matching
  result is ANDed, that is, only devices which have all specified attributes are
  triggered.
-A,
    --attr-nomatch=ATTRIBUTE=VALUE
Do not trigger events for devices with a matching sysfs
  attribute. If a value is specified along with the attribute name, the content
  of the attribute is matched against the given value using shell style pattern
  matching. If no value is specified, the existence of the sysfs attribute is
  checked. When this option is specified multiple times, then each matching
  result is ANDed, that is, only devices which have none of the specified
  attributes are triggered.
-p,
    --property-match=PROPERTY=VALUE
Trigger events for devices with a matching property
  value. This option supports shell style pattern matching. When this option is
  specified more than once, then each matching result is ORed, that is, devices
  which have one of the specified properties are triggered.
-g, --tag-match=TAG
Trigger events for devices with a matching tag. When this
  option is specified multiple times, then each matching result is ANDed, that
  is, devices which have all specified tags are triggered.
-y, --sysname-match=NAME
Trigger events for devices for which the last component
  (i.e. the filename) of the /sys/ path matches the specified PATH. This
  option supports shell style pattern matching. When this option is specified
  more than once, then each matching result is ORed, that is, all devices which
  have any of the specified NAME are triggered.
--name-match=NAME
Trigger events for devices with a matching device path.
  When this option is specified more than once, then each matching result is
  ORed, that is, all specified devices are triggered.
Added in version 218.
-b, --parent-match=SYSPATH
Trigger events for all children of a given device. When
  this option is specified more than once, then each matching result is ORed,
  that is, all children of each specified device are triggered.
--initialized-match, --initialized-nomatch
When 
--initialized-match is specified, trigger
  events for devices that are already initialized by 
systemd-udevd, and
  skip devices that are not initialized yet.
When --initialized-nomatch is specified, trigger events for
    devices that are not initialized by systemd-udevd yet, and skip
    devices that are already initialized.
Typically, it is essential that applications which intend to use
    such a match, make sure a suitable udev rule is installed that sets at least
    one property on devices that shall be matched. See also Initialized Devices
    section below for more details.
Warning
--initialized-nomatch can potentially save a significant amount of time
  compared to re-triggering all devices in the system and e.g. can be used to
  optimize boot time. However, this is not safe to be used in a boot sequence in
  general. Especially, when udev rules for a device depend on its parent devices
  (e.g. "ATTRS" or "IMPORT{parent}" keys, see 
udev(7)
  for more details), the final state of the device becomes easily unstable with
  this option.
 
Added in version 251.
-w, --settle
Apart from triggering events, also waits for those events
  to finish. Note that this is different from calling 
udevadm settle.
  
udevadm settle waits for all events to finish. This option only waits
  for events triggered by the same command to finish.
Added in version 238.
--uuid
Trigger the synthetic device events, and associate a
  randomized UUID with each. These UUIDs are printed to standard output, one
  line for each event. These UUIDs are included in the uevent environment block
  (in the "SYNTH_UUID=" property) and may be used to track delivery of
  the generated events.
Added in version 249.
--wait-daemon[=SECONDS]
Before triggering uevents, wait for systemd-udevd daemon
  to be initialized. Optionally takes timeout value. Default timeout is 5
  seconds. This is equivalent to invoking 
udevadm control --ping before
  
udevadm trigger.
Added in version 241.
-h, --help
Print a short help text and exit.
In addition, optional positional arguments can be used to specify
    device names or sys paths. They must start with /dev/ or /sys/
  respectively.
udevadm settle [options]¶
Watches the udev event queue, and exits if all current events are
    handled.
-t, --timeout=SECONDS
Maximum number of seconds to wait for the event queue to
  become empty. The default value is 120 seconds. A value of 0 will check if the
  queue is empty and always return immediately. A non-zero value will return an
  exit code of 0 if queue became empty before timeout was reached, non-zero
  otherwise.
-E, --exit-if-exists=FILE
Stop waiting if file exists.
-h, --help
Print a short help text and exit.
See systemd-udev-settle.service(8) for more
  information.
udevadm control option¶
Modify the internal state of the running udev daemon.
-e, --exit
Signal and wait for systemd-udevd to exit. No option
  except for 
--timeout can be specified after this option. Note that
  systemd-udevd.service contains 
Restart=always and so as a result, this
  option restarts systemd-udevd. If you want to stop systemd-udevd.service,
  please use the following:
systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd.service
 
-l, --log-level=value
Set the internal log level of systemd-udevd. Valid values
  are the numerical syslog priorities or their textual representations:
  emerg, alert, crit, err, warning,
  notice, info, and debug.
-s, --stop-exec-queue
Signal systemd-udevd to stop executing new events.
  Incoming events will be queued.
-S, --start-exec-queue
Signal systemd-udevd to enable the execution of
  events.
-R, --reload
Signal systemd-udevd to reload the rules files and other
  databases like the kernel module index. Reloading rules and databases does not
  apply any changes to already existing devices; the new configuration will only
  be applied to new events.
-p,
    --property=KEY=value
Set a global property for all events.
-m, --children-max=value
Set the maximum number of events, systemd-udevd will
  handle at the same time. When 0 is specified, then the maximum is determined
  based on the system resources.
--ping
Send a ping message to systemd-udevd and wait for the
  reply. This may be useful to check that systemd-udevd daemon is running.
Added in version 241.
-t, --timeout=seconds
The maximum number of seconds to wait for a reply from
  systemd-udevd.
--load-credentials
When specified, the following credentials are used when
  passed in:
udev.conf.*
These credentials should contain valid
  
udev.conf(5) configuration data. From each matching credential a
  separate file is created. Example: a passed credential udev.conf.50-foobar
  will be copied into a configuration file /run/udev/udev.conf.d/50-foobar.conf.
Added in version 256.
udev.rules.*
These credentials should contain valid 
udev(7)
  rules. From each matching credential a separate file is created. Example: a
  passed credential udev.rules.50-foobar will be copied into a configuration
  file /run/udev/rules.d/50-foobar.rules.
Added in version 256.
Note, this does not imply --reload option. So, if
    systemd-udevd is already running, please consider to also specify
    -reload to make the copied udev rules files used by
    systemd-udevd.
Added in version 256.
-h, --help
Print a short help text and exit.
udevadm monitor [options]¶
Listens to the kernel uevents and events sent out by a udev rule
    and prints the devpath of the event to the console. It can be used to
    analyze the event timing, by comparing the timestamps of the kernel uevent
    and the udev event.
-k, --kernel
Print the kernel uevents.
-u, --udev
Print the udev event after the rule processing.
-p, --property
Also print the properties of the event.
-s,
  --subsystem-match=string[/string]
Filter kernel uevents and udev events by
  subsystem[/devtype]. Only events with a matching subsystem value will pass.
  When this option is specified more than once, then each matching result is
  ORed, that is, all devices in the specified subsystems are monitored.
-t, --tag-match=string
Filter udev events by tag. Only udev events with a given
  tag attached will pass. When this option is specified more than once, then
  each matching result is ORed, that is, devices which have one of the specified
  tags are monitored.
-h, --help
Print a short help text and exit.
udevadm test [options] [devpath|file|unit]¶
Simulate a udev event run for the given device, and print debug
    output.
-a, --action=ACTION
Type of event to be simulated. Possible actions are
  "add", "remove", "change", "move",
  "online", "offline", "bind", and
  "unbind". Also, the special value "help" can be used to
  list the possible actions. The default value is "add".
-N,
    --resolve-names=early|late|never
Specify when udevadm should resolve names of users and
  groups. When set to 
early (the default), names will be resolved when
  the rules are parsed. When set to 
late, names will be resolved for
  every event. When set to 
never, names will never be resolved and all
  devices will be owned by root.
Added in version 209.
-h, --help
Print a short help text and exit.
udevadm test-builtin [options] command [devpath|file|unit]¶
Run a built-in command COMMAND for device DEVPATH,
    and print debug output.
-a, --action=ACTION
Type of event to be simulated. Possible actions are
  "add", "remove", "change", "move",
  "online", "offline", "bind", and
  "unbind". Also, the special value "help" can be used to
  list the possible actions. The default value is "add".
Added in version 250.
-h, --help
Print a short help text and exit.
--version
Print a short version string and exit.
udevadm verify [options] [file] ...¶
Verify syntactic, semantic, and stylistic correctness of udev
    rules files.
Positional arguments could be used to specify one or more files to
    check. If no files are specified, the udev rules are read from the files
    located in the same udev/rules.d directories that are processed by the udev
    daemon.
The exit status is 0 if all specified udev rules files are
    syntactically, semantically, and stylistically correct, and a non-zero error
    code otherwise.
-N,
    --resolve-names=early|never
Specify when udevadm should resolve names of users and
  groups. When set to 
early (the default), names will be resolved when
  the rules are parsed. When set to 
never, names will never be resolved.
Added in version 254.
--root=PATH
When looking for udev rules files located in udev/rules.d
  directories, operate on files underneath the specified root path 
PATH.
Added in version 254.
--no-summary
Do not show summary.
Added in version 254.
--no-style
Ignore style issues. When specified, even if style issues
  are found in udev rules files, the exit status is 
0 if no syntactic or
  semantic errors are found.
Added in version 254.
-h, --help
Print a short help text and exit.
udevadm wait [options] [device|syspath] ...¶
Wait for devices or device symlinks being created and initialized
    by systemd-udevd. Each device path must start with "/dev/"
    or "/sys/", e.g. "/dev/sda",
    "/dev/disk/by-path/pci-0000:3c:00.0-nvme-1-part1",
    "/sys/devices/pci0000:00/0000:00:1f.6/net/eth0", or
    "/sys/class/net/eth0". This can take multiple devices. This may be
    useful for waiting for devices being processed by systemd-udevd after
    e.g. partitioning or formatting the devices.
-t, --timeout=SECONDS
Maximum number of seconds to wait for the specified
  devices or device symlinks being created, initialized, or removed. The default
  value is "infinity".
Added in version 251.
--initialized=BOOL
Check if 
systemd-udevd initialized devices.
  Defaults to true. When false, the command only checks if the specified devices
  exist. Set false to this setting if there is no udev rules for the specified
  devices, as the devices will never be considered as initialized in that case.
  See Initialized Devices section below for more details.
Added in version 251.
--removed
When specified, the command wait for devices being
  removed instead of created or initialized. If this is specified,
  
--initialized= will be ignored.
Added in version 251.
--settle
When specified, also watches the udev event queue, and
  wait for all queued events being processed by 
systemd-udevd.
Added in version 251.
-h, --help
Print a short help text and exit.
udevadm lock [options] [command] ...¶
udevadm lock takes an (advisory) exclusive lock on a block
    device (or all specified devices), as per Locking Block Device
    Access[2] and invokes a program with the locks taken. When the invoked
    program exits the locks are automatically released and its return value is
    propagated as exit code of udevadm lock.
This tool is in particular useful to ensure that
    systemd-udevd.service(8) does not probe a block device while changes
    are made to it, for example partitions created or file systems formatted.
    Note that many tools that interface with block devices natively support
    taking relevant locks, see for example sfdisk(8)'s --lock
    switch.
The command expects at least one block device specified via
    --device= or --backing=, and a command line to execute as
    arguments.
--device=DEVICE, -d
    DEVICE
Takes a path to a device node of the device to lock. This
  switch may be used multiple times (and in combination with 
--backing=)
  in order to lock multiple devices. If a partition block device node is
  specified the containing "whole" block device is automatically
  determined and used for the lock, as per the specification. If multiple
  devices are specified, they are deduplicated, sorted by the major/minor of
  their device nodes and then locked in order.
This switch must be used at least once, to specify at least one
    device to lock. (Alternatively, use --backing=, see below.)
Added in version 251.
--backing=PATH, -b
  PATH
If a path to a device node is specified, identical to
  
--device=. However, this switch alternatively accepts a path to a
  regular file or directory, in which case the block device of the file system
  the file/directory resides on is automatically determined and used as if it
  was specified with 
--device=.
Added in version 251.
--timeout=SECS, -t
  SECS
Specifies how long to wait at most until all locks can be
  taken. Takes a value in seconds, or in the usual supported time units, see
  
systemd.time(7). If specified as zero the lock is attempted and if not
  successful the invocation will immediately fail. If passed as
  "infinity" (the default) the invocation will wait indefinitely until
  the lock can be acquired. If the lock cannot be taken in the specified time
  the specified command will not be executed and the invocation will fail.
Added in version 251.
--print, -p
Instead of locking the specified devices and executing a
  command, just print the device paths that would be locked, and execute no
  command. This command is useful to determine the "whole" block
  device in case a partition block device is specified. The devices will be
  sorted by their device node major number as primary ordering key and the minor
  number as secondary ordering key (i.e. they are shown in the order they'd be
  locked). Note that the number of lines printed here can be less than the
  number of 
--device= and 
--backing= switches specified in case
  these resolve to the same "whole" devices.
Added in version 251.
-h, --help
Print a short help text and exit.