Em um link simbólico apontando para '127.0.1.1:+xxxxx', qual é o caractere mais para?

52

No meu sistema de arquivos Linux, um link simbólico aponta para 127.0.1.1:+xxxxx .

Por que o sinal de mais? Poderia também haver um menos? Por que não apenas 127.0.1.1:xxxxx ?

    
por myMethod 03.10.2018 / 21:01

2 respostas

95

Links simbólicos que não apontam para um arquivo não têm nenhum significado genérico. Nesse caso, pode ser o ID do processo, ou uma porta com algum protocolo especial falado sobre ele, ou outro identificador. Tudo depende de qual programa fez isso.

O software que cria esses links simplesmente aproveita os fatos de que 1) o alvo de um link simbólico pode ser inexistente ou mesmo um absurdo total; 2) criar um link simbólico é uma operação inteiramente atômica de um único syscall (como está lendo seu alvo), ao contrário de criar um arquivo regular que leva pelo menos 3 chamadas de sistema separadas.

Assim, a criação de links simbólicos pode ser abusada como forma de bloqueio (garantindo uma única instância de um programa), mesmo quando outros mecanismos não sejam confiáveis. O programa não precisa do symlink para realmente resolver um arquivo real: ele só se preocupa se criar o link é bem-sucedido ou se ele falha devido a ele já existir.

    
por 03.10.2018 / 21:19
22

Tanto quanto eu sei o "+" significa que o número após o IP (o "xxxxx") refere-se a um "processo ID" (não uma porta que normalmente usa a notação [endereço IP]: [portnumber] ).

É possível que essa "notação" (não tenho certeza se a chamaria de "notação", pois não conheço nenhuma documentação "oficial") se refira a outra coisa se usada por um aplicativo específico - mas, novamente, essa é sempre a possibilidade não apenas dos links simbólicos. Os únicos casos que conheço (e que encontrei com uma pesquisa que não era muito extensa) o "+ XXXX" sempre se referia ao ID do processo.

    
por 03.10.2018 / 21:12