Esse é o número inode do canal ou soquete em questão.
Um canal é um canal unidirecional, com uma extremidade de gravação e uma final de leitura. No seu exemplo, parece que o FD 5 e o FD 6 estão conversando entre si, já que os números de inode são os mesmos. (Talvez não, no entanto. Veja abaixo.)
Mais comum do que ver um programa falando sozinho em um canal é um par de programas separados conversando entre si, normalmente porque você configura um canal entre eles com um shell:
shell-1$ ls -lR / | less
Em seguida, em outra janela 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]
Isso diz que a saída padrão do PID 4242 (FD 1, por convenção) é conectada a um tubo com o número de inode 222536390 e que a entrada padrão do PID 4243 (FD 0) está conectada ao mesmo tubo.
Tudo isso é um longo caminho para dizer que a saída de ls
está sendo enviada para a entrada de less
.
Voltando ao seu exemplo, FD 1 e FD 2 são quase certamente não conversando entre si. O mais provável é que este seja o resultado da ligação entre stdout (FD 1) e stderr (FD 2), então ambos vão para o mesmo destino. Você pode fazer isso com um shell Bourne assim:
$ some-program 2>&1 | some-other-program
Portanto, se você pesquisasse em /proc/$PID_OF_SOME_OTHER_PROGRAM/fd
, encontraria um terceiro FD anexado a um canal com o mesmo número de inode que está anexado aos FDs 1 e 2 para a instância some-program
. Isso também pode ser o que está acontecendo com os FDs 5 e 6 em seu exemplo, mas não tenho uma teoria pronta sobre como esses dois FDs ficaram ligados. Você precisa saber o que o programa está fazendo internamente para descobrir isso.