Quando executo netstat -nptl
, tenho esta saída estranha:
tcp 0 0 127.0.2.1:53 0.0.0.0:* LISTEN 1/init
Isto é do dnscrypt-proxy
serviço DoH de com configuração padrão.
ps uww 1
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.0 166580 11936 ? Ss 12:15 0:01 /sbin/init splash
Eu me pergunto por que o PID 1 não faz sentido agora
No Linux, using
netstat
deve ser substituído por usingss
, pois fornece mais informações. Para este caso ele fornece todos os processos que compartilham o soquete, enquantonetstat
para no primeiro. Existem outras pequenas diferenças, como fornecer ocomm
nome (systemd
) em vez docmd
nome (init
). Aqui no Debian 12, mas qualquer sistema Linux baseado em systemd seria semelhante:Pode-se ver que ambos
systemd
compartilhamdnscrypt-proxy
o mesmo soquete.Por que? Porque
dnscrypt-proxy
está sendo executado através do Socket Activation do systemd : um mecanismo semelhante ao inetd , mas melhorado, que permite (se configurado assim) ter um soquete escutando antes de ter o daemon realmente em execução, pronto para iniciar o daemon na primeira invocação. Quando uma configuração de serviço systemd tem uma configuração de soquete systemd associada (com uma dependência adequada, aqui ), isso significa que está usando ativação de soquete.Requires=dnscrypt-proxy.socket
A criação do soquete foi feita diretamente por
systemd
através da.socket
parte associada à.service
parte, e esse soquete de escuta foi então herdado pordnscrypt-proxy
(que deve estar ciente deste método).Existem várias vantagens com este método, entre elas pelo menos estas duas (as outras estão descritas nos links de Ativação de Socket ):