//po4a: entry man manual
= getino(1)
:doctype: manpage
:man manual: User Commands
:man source: util-linux {release-version}
:page-layout: base
:command: getino

== NAME

getino - print the unique inode number associated to a process file descriptor or namespace for a given PID

== SYNOPSIS

*getino* [*--pidfs*|*--cgroupns*|*--ipcns*|*--netns*|*--mntns*|*--pidns*|*--timens*|*--userns*|*--utsns*] [*--print-pid*|*-p*] _PID_[:inode]...

*getino* [*--print-pid*|*-p*] _PID_[:inode]...

*getino* _PID_[:inode]...


== DESCRIPTION

*getino* is a simple command that prints the inode numbers associated with the process file descriptor (pidfd) or namespace for all PIDs passed to it as arguments.

The kernel guarantees that the inode number associated with a process's file descriptor is exempt from reuse during the current boot cycle; therefore, a process can be uniquely identified by its PID and the inode number, conveniently so with the format '_PID:inode_'.
As an example, this enables race-free signalling of processes with *kill*(1), which accepts the aforementioned _PID_ format.

Inode numbers associated with a namespace for a given process are essentially namespace IDs, identical to the inode number reported by /proc/pid/ns/_nstype_, see *namespaces*(7) for more details.

== OPTIONS

*-p*, *--print-pid*::
Print both the PID and pidfd/namespace inode separated by a colon ':', in respective order.
This format convention can be used to address processes in a race-free manner, e.g. for signalling with the *kill*(1) command.

*--pidfs*::
Print the unique inode number for a process's pidfs file descriptor.

*--cgroupns*::
Print the unique cgroup namespace inode number. See *cgroup_namespaces*(7)

*--ipcns*::
Print the unique ipc namespace inode number. See *ipc_namespaces*(7)

*--netns*::
Print the unique network namespace inode number. See *network_namespaces*(7)

*--mntns*::
Print the unique mount namespace inode number. See *mount_namespaces*(7)

*--pidns*::
Print the unique pid namespace inode number. See *pid_namespaces*(7)

*--timens*::
Print the unique time namespace inode number. See *time_namespaces*(7)

*--userns*::
Print the unique user namespace inode number. See *user_namespaces*(7)

*--utsns*::
Print the unique uts namespace inode number. See *uts_namespaces*(7)

include::man-common/help-version.adoc[]

== EXIT STATUS

*getino* has the following exit status values:

*0*::
success
*1*::
unspecified failure

== NOTES

*getino* requires support for the pidfs pseudo-filesystem (introduced in Linux version 6.9), to retrieve a valid inode for a process file descriptor.

== AUTHORS

mailto:cgoesc2@wgu.edu[Christian Goeschel Ndjomouo]

== SEE ALSO

*kill*(1) *pidfd_open(2)* *namespaces(7)*

include::man-common/bugreports.adoc[]

include::man-common/footer.adoc[]

ifdef::translation[]
include::man-common/translation.adoc[]
endif::[]
