¿Cómo puedo deshabilitar avahi-daemon y puede explicarme cómo se ejecuta si aparece como un servicio pero no está en rcN.d?
Puedes dejar de leer aquí. De hecho, hazlo a menos que quieras ENSEÑAR a un novato sobre Ubuntu. La pregunta anterior debe ser lo suficientemente clara como para ser respondida. El resto es solo yo llamando a una forma más estructurada de encontrar el camino de Ubuntu. Puedo usar más o menos otros sistemas "tipo UNIX".
Soy un principiante, así que si actúo sin sentido, considérame tu WTF diario, pero ayúdame a mejorar, por favor.
En cada arranque, /sbin/init
parece estar iniciando un proceso llamadoavahi-daemon
# initctl list | grep avahi
avahi-daemon start/running, process 1280
como usuario avahi
# id avahi
uid=107(avahi) gid=118(avahi) groups=118(avahi)
a ps -efww ef
muestra 2 procesos activos, ambos llamados avahi-daemon
, y el PPID
primero avahi-daemon
es 1
, de hecho , el segundo proceso es solo un hijo del primero. El PPID
= 1
es lo que me hace pensar que esto se inició automáticamente.
Opcionalmente:
Realmente no sé cómo verificar correctamente lo que se ejecuta al inicio del sistema, pensando en ello.
¿Es esta la forma de obtener una lista de servicios que se ejecutan al inicio? initctl list | sort
de todos modos, parece que puedo detener temporalmente este "servicio" a través de este comando:
service avahi-daemon stop
o de hecho este comando
/etc/init.d/avahi-daemon stop
directamente, que es lo que /usr/sbin/service
parece estar usando:
env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE"
Cuando se inicia, el script me recuerda que estoy controlando un servicio "Upstart" y que debería usar la invocación más simple stop avahi-daemon
. Supongo que tendré que aprender sobre Upstart, pero por ahora, todo lo que necesito aprender es esto:
¿Cómo desactivo los servicios en Ubuntu?
Esto es lo que probé (esta debería ser la forma correcta de hacerlo, ¿o no?):
update-rc.d avahi-daemon disable
pero se queja:
System start/stop links for /etc/init.d/avahi-daemon do not exist
así que fui a buscar el camino al 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"
cual es este:
/usr/sbin/avahi-daemon
y cualquier cosa que pueda considerarse un "archivo ejecutable" en etc
:
find /etc -type f -name '*avahi*' -perm -u+x
pensando que encontraría scripts de inicio en /etc/rcN.d
. En su lugar encontré otras cosas:
/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 esto avahi-daemon
se está lanzando en los cambios de estado de la red? ¿Hay una mejor manera de buscar binarios que se inician automáticamente en un sistema?
Normalmente habría borrado los enlaces simbólicos en varios rc{3,5}.d
en esta etapa, pero ahora no estoy muy seguro. ¿Qué comienza exactamente esta bestia? ¿Cómo deshabilitarlo sin apt-get remove
o apt-get purge
?
No tiene demasiados recursos abiertos, por lo que puedo ver:
lsof -p $(echo `ps --no-headers -o pid -C avahi-daemon | head -n 1`)
ni utiliza demasiados ciclos de CPU, basados en un vistazo rápido a htop
.
Escribí esta frase para ver si funciona mal en el uso de la CPU durante un período de un minuto, y nunca lo hace, pero avíseme si hay mejores maneras de verificar eso:
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
por esfuerzo!