Como posso desabilitar o avahi-daemon e você pode me explicar como ele funciona se aparecer como um serviço, mas não está em rcN.d?
Você pode parar de ler aqui. Na verdade, por favor, a menos que você queira ensinar um noob algum Ubuntu. A questão acima deve ser clara o suficiente para ser respondida. O resto é apenas eu pedindo uma maneira mais estruturada de encontrar o caminho do Ubuntu. Eu posso mais ou menos usar outros sistemas "semelhantes ao UNIX".
Eu sou um iniciante, então, se eu agir sem sentido, considere-me sua WTF diária, mas me ajude a melhorar, por favor.
A cada inicialização, /sbin/init
parece estar lançando um processo chamado avahi-daemon
# initctl list | grep avahi
avahi-daemon start/running, process 1280
como usuário avahi
# id avahi
uid=107(avahi) gid=118(avahi) groups=118(avahi)
a ps -efww ef
mostra dois processos ativos, ambos chamados de avahi-daemon
, e o PPID
do primeiro avahi-daemon
é de fato 1
, o segundo processo é apenas um filho do primeiro. O PPID
= 1
é o que me faz pensar que isso foi iniciado automaticamente.
Opcionalmente:
Eu realmente não sei como verificar corretamente o que é executado na inicialização do sistema, pensando nisso.
Esta é a maneira de obter uma lista de serviços que são executados na inicialização? initctl list | sort
de qualquer forma, pareço ser capaz de parar temporariamente este "serviço" através deste comando:
service avahi-daemon stop
ou mesmo este comando
/etc/init.d/avahi-daemon stop
diretamente, que é o que este /usr/sbin/service
parece estar usando:
env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE"
Quando iniciado, o script me lembra que estou controlando um serviço "Upstart" e que devo usar a invocação mais simples stop avahi-daemon
. Eu acho que vou precisar aprender sobre o Upstart, mas por enquanto, tudo que eu preciso aprender é isso:
como faço para desativar serviços no Ubuntu?
Aqui está o que eu tentei (essa deve ser a maneira correta de fazer isso, ou não é?):
update-rc.d avahi-daemon disable
mas reclama:
System start/stop links for /etc/init.d/avahi-daemon do not exist
então fui procurar o caminho para o binário:
# Let me know if there is a better way to get the path above
readlink "/proc/$(echo 'ps --no-headers -o pid -C avahi-daemon | head -n 1')/exe"
qual é este:
/usr/sbin/avahi-daemon
e qualquer coisa que possa ser considerada um "arquivo executável" em etc
:
find /etc -type f -name '*avahi*' -perm -u+x
pensando em encontrar scripts de inicialização em /etc/rcN.d
. Eu encontrei outras coisas em vez disso:
/etc/dhcp/dhclient-exit-hooks.d/zzz_avahi-autoipd
/etc/dhcp/dhclient-enter-hooks.d/avahi-autoipd
/etc/resolvconf/update-libc.d/avahi-daemon
/etc/network/if-up.d/avahi-autoipd
/etc/network/if-up.d/avahi-daemon
/etc/network/if-down.d/avahi-autoipd
/etc/avahi/avahi-autoipd.action
parece que essa coisa avahi-daemon
está sendo lançada em mudanças de estado de rede? Existe uma maneira melhor de procurar binários iniciados automaticamente em um sistema?
Eu normalmente teria obliterado os links simbólicos nos vários rc{3,5}.d
neste estágio, mas agora não tenho muita certeza. O que exatamente começa essa fera? Como desabilitá-lo sem apt-get remove
ou apt-get purge
?
Ele não tem muitos recursos abertos, até onde eu posso ver:
lsof -p $(echo 'ps --no-headers -o pid -C avahi-daemon | head -n 1')
nem usa muitos ciclos de CPU, com base em uma rápida olhada em htop
.
Eu escrevi este one-liner para ver se ele funciona bem no utilitário da CPU por um período de um minuto, e isso nunca acontece, mas me avise se há maneiras melhores de verificar isso:
for i in {1..59}; do ps -p $(echo 'ps --no-headers -o pid -C avahi-daemon | head -n 1') --no-headers -o pcpu; sleep 1; done