¿Es normal este comportamiento de VLC?

11

Estoy en las últimas actualizaciones de ubuntu 16.04 unity instaladas, tengo una de las mejores computadoras portátiles para juegos Asus en el mercado, VLC está instalado pero nunca lo uso.

Durante los últimos meses, no pude apagar mi PC, cada vez que trato de hacerlo, los ventiladores comienzan a girar tan rápido y se cuelga, así que solo presiono el botón de apagado, ese problema solo estaba en el apagado , no reiniciar Ni siquiera me molesté en tratar de resolver el problema.

Hoy, mientras trabajaba, noté que los fanáticos hacían lo mismo que normalmente hacen cuando cierran. Corrí topnoté que se ejecutaban 2 instancias de vlc con mi nombre de usuario que consumían como 122% de CPU cada una, aunque nuevamente no uso vlc y no estoy usando ningún programa que se base en vlc.

Lo intenté sudo kill <pid>y, sudo killall <pid>y sudo killall vlcaún así no fueron asesinados, eso nunca me había pasado antes. Los maté desde el monitor de recursos de Ubuntu, fueron asesinados y se solucionó el problema de apagado, y todo volvió a la normalidad.

¿Le pasó eso a alguien antes?

Lynob
fuente
Hola, Lynob, acabo de actualizar el script en mi respuesta para que sea compatible con crontab, que por defecto funciona con un número limitado de variables de entorno ... Ahora, de acuerdo con mis pruebas, el script funciona como se esperaba.
pa4080
2
Si está interesado en averiguar por qué está sucediendo, podría correr la ps aux | grep " $(echo -n $(pgrep vlc | xargs ps -o ppid | tail -n +2 | tr -d ' ') | sed 's/ / \\| /g') "próxima vez que suceda. Esto buscaría todas las instancias en ejecución de VLC, obtendría los PID principales para cada una de ellas y luego buscaría los PID principales en la salida de ps aux. Podría ayudar a localizar el problema.
anonymoose
3
Para el registro, sudo kill -9 <pid>probablemente habría funcionado donde simplemente killno. El -9medio significa "Mata todo lo que se mueva, con prejuicios extremos, de la manera más espantosa posible". No mucho puede sobrevivir. Sin -9eso, es más como "¿Por favor muere? ¿Por favor, bonita, por favor con una cereza encima?"
trysis
1
@trysis: Ten cuidado kill -9, es peligroso. Si, por ejemplo, la aplicación ha creado un archivo temporal debajo /var/lock, no se eliminará. Del mismo modo, los búferes no se eliminarán, las transacciones de la base de datos no se confirmarán, etc. Podría terminar con datos corruptos o faltantes si se escribiera algo en alguna parte. VLC probablemente no está haciendo ninguna de esas cosas, pero recomendaría tratar de entender el problema antes de asumirlo.
Kevin
1
Por cierto, el 99% de los problemas que tuve con VLC colgando y haciendo otras "cosas extrañas" se debieron a que trataba de usar la aceleración de hardware para la decodificación de video, o al uso del backend de video "incorrecto" (lo que sea que eso signifique); Intentaría jugar con esas cosas (deshabilitar la aceleración HW para los códecs, tratar de cambiar la salida de video del backend) y ver si algo bueno sale de eso.
Matteo Italia

Respuestas:

10

Estoy experimentando un problema similar con el reproductor VLC. Pero la diferencia es que lo estoy usando a menudo. Aquí hay una posible solución alternativa (no totalmente probada) para este problema en Ubuntu 16.04 con Unity.

De acuerdo con esta respuesta , podemos probar si hay un archivo de escritorio de aplicación en ejecución llamado más vlco menos. Si no hay nadie, podemos intentar matar todos los procesos de VLC. Para este propósito, cree un archivo ejecutable, llamado ~/bin/vlc-killer.shy agregue las siguientes líneas como su contenido (aquí hay una referencia sobre los envíos exportados):

#!/bin/bash

# Check whether the user is logged-in: if not then exit
if [[ -z "$(pgrep gnome-session -n -U $UID)" ]]; then exit; fi

# Export the current desktop session environment variables
export $(xargs -0 -a "/proc/$(pgrep gnome-session -n -U $UID)/environ")

# Test whether there is any VLC RunningApplicationsDesktopFile
/usr/bin/qdbus org.ayatana.bamf /org/ayatana/bamf/matcher \
org.ayatana.bamf.matcher.RunningApplicationsDesktopFiles | grep -q 'vlc'

# If not killall VLC processes
if [[ $? -ne 0 ]]; then /usr/bin/killall vlc; fi

Luego abra la Crontab del usuario para edit ( crontab -e) y aplique el siguiente trabajo (que ejecutará nuestro script cada minuto) en la parte inferior:

* * * * * $HOME/bin/vlc-killer.sh >/dev/null 2>&1
pa4080
fuente
1
Si estoy en lo cierto, esto funciona solo cuando al menos una instancia de vlcse inició a través de la GUI. Si está acostumbrado a ejecutar vlc movie.mpgúnicamente desde la línea de comandos (como yo), esto matará el vlcproceso después de un minuto. Sin embargo, buena solución y +1 de todos modos.
PerlDuck
2
@PerlDuck, si bien hay un "icono" VLC activo (en el iniciador de Dash ), el script funciona, sin importar si VLC se inicia mediante un archivo .desktop o CLI.
pa4080
1
Oh genial No estaba al tanto de eso.
PerlDuck