Come posso disabilitare avahi-daemon e puoi spiegarmi come funziona se appare come un servizio ma non è in rcN.d?
Puoi smettere di leggere qui. In effetti, per favore fallo a meno che tu non voglia INSEGNARE un po 'di Ubuntu. La domanda di cui sopra dovrebbe essere sufficientemente chiara per ricevere una risposta. Il resto sono solo io a chiedere un modo più strutturato di orientarsi su Ubuntu. Posso più o meno usare altri sistemi "simili a UNIX".
Sono un principiante, quindi se agisco in modo insensato, considerami il tuo WTF quotidiano ma aiutami a migliorare, per favore.
Ad ogni avvio, /sbin/init
sembra avviare un processo chiamatoavahi-daemon
# initctl list | grep avahi
avahi-daemon start/running, process 1280
come utente avahi
# id avahi
uid=107(avahi) gid=118(avahi) groups=118(avahi)
a ps -efww ef
mostra 2 processi attivi, entrambi chiamati avahi-daemon
, e il PPID
primo avahi-daemon
è effettivamente 1
, il secondo processo è solo un figlio del primo. Il PPID
= 1
è ciò che mi fa pensare che questo sia stato avviato automaticamente.
opzionalmente:
Non so davvero come controllare correttamente cosa viene eseguito all'avvio del sistema, a pensarci.
È questo il modo per ottenere un elenco di servizi eseguiti all'avvio? initctl list | sort
comunque, mi sembra di essere in grado di interrompere temporaneamente questo "servizio" tramite questo comando:
service avahi-daemon stop
o davvero questo comando
/etc/init.d/avahi-daemon stop
direttamente, che è ciò che /usr/sbin/service
sembra utilizzare:
env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE"
Una volta lanciato, lo script mi ricorda che sto controllando un servizio "Upstart" e che dovrei usare la chiamata più semplice stop avahi-daemon
. Immagino che dovrò conoscere Upstart ma per ora, tutto quello che devo imparare è questo:
come disabilitare i servizi in Ubuntu?
Ecco cosa ho provato (questo dovrebbe essere il modo corretto di farlo, o no?):
update-rc.d avahi-daemon disable
ma si lamenta:
System start/stop links for /etc/init.d/avahi-daemon do not exist
così sono andato a caccia del percorso per il binario:
# 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"
che è questo:
/usr/sbin/avahi-daemon
e tutto ciò che potrebbe essere considerato un "file eseguibile" in etc
:
find /etc -type f -name '*avahi*' -perm -u+x
pensando che avrei trovato gli script di avvio in /etc/rcN.d
. Ho trovato invece altre cose:
/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
sembra che questa avahi-daemon
cosa venga lanciata sui cambiamenti di stato della rete? Esiste un modo migliore per dare la caccia ai binari avviati automaticamente su un sistema?
Normalmente avrei cancellato i collegamenti simbolici nei vari rc{3,5}.d
in questa fase, ma ora non sono troppo sicuro. Cosa inizia esattamente questa bestia? Come disabilitarlo senza apt-get remove
o apt-get purge
?
Non ha troppe risorse aperte, per quanto posso vedere:
lsof -p $(echo `ps --no-headers -o pid -C avahi-daemon | head -n 1`)
né utilizza troppi cicli della CPU, basandosi su una rapida occhiata a htop
.
Ho scritto questo one-liner per vedere se va in modo anomalo sull'utilità CPU per un periodo di un minuto, e non lo fa mai, ma fammi sapere se ci sono modi migliori per verificare che:
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
A
per sforzo!