Ese es el número de inodo para la tubería o el enchufe en cuestión.
Una tubería es un canal unidireccional, con un final de escritura y un final de lectura. En su ejemplo, parece que FD 5 y FD 6 están hablando entre sí, ya que los números de inodo son los mismos. (Tal vez no, sin embargo. Ver más abajo).
Más común que ver un programa que se habla a sí mismo a través de una tubería es un par de programas separados que se comunican entre sí, generalmente porque configura una tubería entre ellos con un shell:
shell-1$ ls -lR / | less
Luego, en otra ventana de terminal:
shell-2$ ...find the ls and less PIDs with ps; say 4242 and 4243 for this example...
shell-2$ ls -l /proc/4242/fd | grep pipe
l-wx------ 1 user user 64 Mar 24 12:18 1 -> pipe:[222536390]
shell-2$ ls -l /proc/4243/fd | grep pipe
l-wx------ 1 user user 64 Mar 24 12:18 0 -> pipe:[222536390]
Esto dice que la salida estándar del PID 4242 (FD 1, por convención) está conectada a una tubería con el número de inodo 222536390, y que la entrada estándar del PID 4243 (FD 0) está conectada a la misma tubería.
Todo lo cual es un largo camino para decir que ls
la salida se está enviando a less
la entrada.
Volviendo a su ejemplo, FD 1 y FD 2 casi seguramente no se hablan entre sí. Lo más probable es que esto sea el resultado de vincular stdout (FD 1) y stderr (FD 2), por lo que ambos van al mismo destino. Puede hacerlo con un shell Bourne como este:
$ some-program 2>&1 | some-other-program
Entonces, si hurgaba /proc/$PID_OF_SOME_OTHER_PROGRAM/fd
, encontraría un tercer FD conectado a una tubería con el mismo número de inodo que el adjunto a los FD 1 y 2 para la some-program
instancia. Esto también puede ser lo que está sucediendo con los FD 5 y 6 en su ejemplo, pero no tengo una teoría clara de cómo estos dos FD se unieron. Tendrías que saber qué está haciendo internamente el programa para resolverlo.
pidgin
: tenía muchas tuberías y enchufes y otras cosas, así que fue un buen ejemplo. Una última pregunta: los inodes son específicos solo en el contexto de un sistema de archivos en particular, ¿correcto? Como en, podría tener el inodo 3 en mi/
sistema de archivos, y otro (diferente) inodo 3 en mi/boot
sistema de archivos.