2020-04-28 05:17:02 +08:00
|
|
|
.. SPDX-License-Identifier: GPL-2.0
|
|
|
|
|
|
|
|
=====================
|
|
|
|
The Devpts Filesystem
|
|
|
|
=====================
|
|
|
|
|
|
|
|
Each mount of the devpts filesystem is now distinct such that ptys
|
2023-08-15 05:28:22 +08:00
|
|
|
and their indices allocated in one mount are independent from ptys
|
|
|
|
and their indices in all other mounts.
|
2020-04-28 05:17:02 +08:00
|
|
|
|
|
|
|
All mounts of the devpts filesystem now create a ``/dev/pts/ptmx`` node
|
|
|
|
with permissions ``0000``.
|
|
|
|
|
|
|
|
To retain backwards compatibility the a ptmx device node (aka any node
|
|
|
|
created with ``mknod name c 5 2``) when opened will look for an instance
|
|
|
|
of devpts under the name ``pts`` in the same directory as the ptmx device
|
|
|
|
node.
|
|
|
|
|
|
|
|
As an option instead of placing a ``/dev/ptmx`` device node at ``/dev/ptmx``
|
|
|
|
it is possible to place a symlink to ``/dev/pts/ptmx`` at ``/dev/ptmx`` or
|
|
|
|
to bind mount ``/dev/ptx/ptmx`` to ``/dev/ptmx``. If you opt for using
|
|
|
|
the devpts filesystem in this manner devpts should be mounted with
|
|
|
|
the ``ptmxmode=0666``, or ``chmod 0666 /dev/pts/ptmx`` should be called.
|
|
|
|
|
|
|
|
Total count of pty pairs in all instances is limited by sysctls::
|
|
|
|
|
|
|
|
kernel.pty.max = 4096 - global limit
|
|
|
|
kernel.pty.reserve = 1024 - reserved for filesystems mounted from the initial mount namespace
|
|
|
|
kernel.pty.nr - current count of ptys
|
|
|
|
|
|
|
|
Per-instance limit could be set by adding mount option ``max=<count>``.
|
|
|
|
|
|
|
|
This feature was added in kernel 3.4 together with
|
|
|
|
``sysctl kernel.pty.reserve``.
|
|
|
|
|
|
|
|
In kernels older than 3.4 sysctl ``kernel.pty.max`` works as per-instance limit.
|