5 votos

¿Por qué "mdnsd" consume mi batería y cómo detenerlo?

Este proceso (mdnsd) había estado drenando mi batería durante unas semanas. No he podido encontrar una solución después de mucha búsqueda.

No tengo ninguna aplicación de drones, ni de Facebook, ni de Firefox, aunque es cierto que el problema empezó más o menos cuando instalé la aplicación de Firefox. Pero la he desinstalado, he reiniciado el teléfono y el problema sigue ahí, lo que me hace pensar que quizá Firefox no tenga nada que ver con esto.

¿Alguna idea? Tengo un LG G2, Android 4.4.2

0 votos

¿Cómo ver la lista de procesos (a través de una aplicación - cuál; o a través de la línea de comandos - adb/termux)?

0 votos

@Robert Sólo lo veo desde la función de uso de la batería por defecto de mi teléfono

4voto

Jack Wade Puntos 231

QUÉ ES EL MDNSD:

mdnsd (Multicast Domain Name System Daemon) es la implementación de Android de mDNSResponder una parte de los próximos Red de configuración cero . Permite descubrir automáticamente los servicios y aparatos conectados a la red:

  • Traducción de nombre a dirección y otras operaciones similares a las del DNS ( mDNS ) en ausencia de un servidor DNS unicast convencional:

    Ofrece la posibilidad de que el usuario identifique los hosts utilizando nombres en lugar de direcciones IP con puntos decimales, incluso si el usuario no tiene configurado un servidor DNS convencional.

  • Descubrimiento de servicios de red ( DNS-SD ):

    También ofrece la posibilidad de que el usuario descubra qué servicios se anuncian en la red, sin tener que conocerlos de antemano ni configurar las máquinas.

Este demonio está enviando continuamente difusiones de multidifusión (consultas / anuncios) a todos los hosts de la red local en la dirección IP 224.0.0.251 y el puerto UDP 5353 , también escuchando en el mismo puerto.

QUÉ APLICACIONES UTILIZAN MDNS:

Cualquier aplicación que haga uso de la Descubrimiento de servicios de red , solicitará mdnsd funcionando en segundo plano ( 1 , 2 , 3 ) :

Añadir NSD a tu aplicación permite a tus usuarios identificar otros dispositivos en la red local que soportan los servicios que tu aplicación solicita. Esto es útil para una variedad de aplicaciones peer-to-peer como el intercambio de archivos o los juegos multijugador.

Una búsqueda rápida en los foros mostrará que muchas aplicaciones son culpadas por el drenaje excesivo de la batería debido al uso de mdnsd Por ejemplo Facebook y Firefox . Este último ha pasado por un error en el pasado que causó el comportamiento inesperado. Ahora tienen su propia implementación de MDNS ( 4 ) . Servicios de Google Play también tienen incorporado el servicio MDNS (para descubrir dispositivos receptores de Google Cast como Chromecast) ( 5 , 6 ) .

Los dispositivos que admiten NSD incluyen impresoras, cámaras web, servidores HTTPS y otros dispositivos móviles.

Aplicaciones integradas en AOSP Servicio de impresión Servicio de recomendación (com.Android.printservice.recommendation) y Servicio de impresión por defecto (com.Android.bips) también hacen uso de la NSD. Por lo tanto, si usted está utilizando las funciones de impresión en su dispositivo, que estaría causando mdnsd ejecutarse en segundo plano. Pero la razón más común es ADBD (Android Debug Bridging Daemon) que fuerza el inicio de mdnsd ( 7 ) .

¿CÓMO DETENER MDNSD?

mdnsd es un servicio init ( 8 ) que puede detenerse mediante activadores. Añade unas líneas a /etc/init/mdnsd.rc :

# stop mdnsd on startup
on property:sys.boot_completed=1
    stop mdnsd

# stop mdnsd when adbd starts/stops
on property:init.svc.adbd=*
    stop mdnsd

También puede detener manualmente el servicio en cualquier momento ejecutando:

~# setprop ctl.stop mdnsd

O puede matar directamente el mdnsd programa como sugiere @ DBX12 . El servicio no debería reiniciarse porque es oneshot . Pero si se dispara una y otra vez por alguna aplicación o por el SO, puedes hacer que el binario sea inexectable (o que se borre) en absoluto:

~# chmod a-x /system/bin/mdnsd

Sin embargo, esto puede romper la funcionalidad de algunas aplicaciones.

Todas las soluciones anteriores requiere Root . Si tu dispositivo no está rooteado, la única manera es identificar y dejar de usar la aplicación/función que utiliza la API NSD de Android o directamente inicia mdnsd servicio.

0 votos

Supongo que tendré que rootear mi teléfono. He intentado identificar la aplicación pero no he podido, después de jugar mucho con la desinstalación de cosas

0 votos

¿Detuvo la depuración UDB desde las opciones de desarrollador y reinició el dispositivo? Puede ser que sea el ADB que se inicia mdnsd en el arranque. Una vez iniciado, no se detendrá aunque detengas el ADB más tarde.

0 votos

Sí, lo había hecho

3voto

DBX12 Puntos 121

Parece que es el demonio para el DNS de multidifusión. Tengo el mismo problema que OP y Trevor. Mi solución es la siguiente (suponiendo que usted tiene un dispositivo rooteado ). Si tienes adb, entonces haz el paso 2 sobre eso, es más cómodo escribir en un teclado ;)

  1. Instalar un emulador de terminal
  2. Crear un shellscript con el contenido su -c "kill $(pgrep mdnsd)"
  3. Ejecútalo cada vez que veas que la batería se agota rápidamente ya que esto es un síntoma de un mdnsd en funcionamiento. Confirme el aviso de SuperSU para conceder permisos de Root al script.

Qué hace el script:

su -c "kill $(pgrep mdnsd)"
^      ^    ^ ^
|      |    | |
|      |    | +- Search the process list for the phrase "mdnsd" and return the process id
|      |    |
|      |    +- Spawn a subshell and execute contained command and return its output
|      |
|      +- Stop the process with the process id specified after kill
+- run the command specified after -c with superuser privileges

0 votos

No hace falta decir que requiere un binario "su" que funcione, lo que significa que necesitas un teléfono rooteado.

0 votos

@peterh bueno, puse ese requisito en la segunda frase en negrita ;)

1 votos

¡Oops, thx, dbx! :-)

0voto

Trevor J Puntos 1

Tengo exactamente la misma experiencia que el OP y me está volviendo loco. También tengo un LG G2 que supongo que ya es un modelo bastante antiguo. Buscando he encontrado un aluvión de mensajes en el foro desde 2015 a 2017 sobre este problema pero nada más reciente hasta ahora. Los posts más antiguos culpan a Facebook, Firefox y el software de drones, pero al igual que el OP nunca he tenido esas aplicaciones en mi teléfono. He eliminado todas las aplicaciones que ya no utilizo y he revertido algunas actualizaciones recientes. Nada ha ayudado todavía. Acabo de eliminar mi aplicación Audible (software de audiolibros) que utilizo mucho. Estoy a punto de apagar el teléfono y recargarlo por completo para ver si funciona. Aunque no soy optimista.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X