//po4a: entry man manual
////
Man page for the lsns command.
Copyright 2015 Karel Zak <kzak@redhat.com>
May be distributed under the GNU General Public License
////
= lsns(8)
:doctype: manpage
:man manual: System Administration
:man source: util-linux {release-version}
:page-layout: base
:command: lsns

== NAME

lsns - list namespaces

== SYNOPSIS

*lsns* [options] _namespace_

== DESCRIPTION

*lsns* lists information about all the currently accessible namespaces or about the given _namespace_. The _namespace_ identifier is an inode number.

The default output is subject to change. So whenever possible, you should avoid using default outputs in your scripts. Always explicitly define expected output mode (*--tree* or *--list*) and columns by using the *--output* option together with a columns list in environments where a stable output is required.

The *NSFS* column, printed when *net* is specified for the *--type* option, is special; it uses multi-line cells. Use the option *--nowrap* to switch to ","-separated single-line representation.

Note that *lsns* reads information directly from the _/proc_ filesystem and for non-root users it may return incomplete information. The current _/proc_ filesystem may be unshared and affected by a PID namespace (see *unshare --mount-proc* for more details). *lsns* is not able to see persistent namespaces without processes where the namespace instance is held by a bind mount to /proc/_pid_/ns/_type_.

== OPTIONS

*-J*, *--json*::
Use JSON output format.

*-l*, *--list*::
Use list output format.

*-n*, *--noheadings*::
Do not print a header line.

*-o*, *--output* _list_::
Specify which output columns to print. Use *--help* to get a list of all supported columns.
+
The default list of columns may be extended if _list_ is specified in the format **+**__list__ (e.g., *lsns -o +PATH*).

*--output-all*::
Output all available columns.

*-P*, *--persistent*::
Display only the namespaces without processes (aka persistent namespaces), created by bind mounting
/proc/pid/ns/type files to a filesystem path.

*-p*, *--task* _PID_::
Display only the namespaces held by the process with this _PID_.

*-r*, *--raw*::
Use the raw output format.

*-t*, *--type* _type_::
Display the specified _type_ of namespaces only. The supported types are *mnt*, *net*, *ipc*, *user*, *pid*, *uts*, *cgroup* and *time*. This option may be given more than once.

*-u*, *--notruncate*::
Do not truncate text in columns.

*-W*, *--nowrap*::
Do not use multi-line text in columns.

*-T*, *--tree* _rel_::
Use tree-like output format. If *process* is given as _rel_, print process tree(s) in each name space. This is default when *--tree* is not specified. If *parent* is given, print tree(s) constructed by the parent/child relationship. If *owner* is given, print tree(s) constructed by the owner/owned relationship. *owner* is used as default when _rel_ is omitted.

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

== EXIT STATUS

The *lsns* utility exits with one of the following values:

*0*::
Success.
*1*::
General error.
*2*::
An ioctl was unknown to the kernel.

== AUTHORS

mailto:kzak@redhat.com[Karel Zak]

== SEE ALSO

*nsenter*(1),
*unshare*(1),
*clone*(2),
*namespaces*(7),
*ioctl_ns*(2),
*ip-netns*(8)

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

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

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