Questo comportamento di VLC è normale?


11

Sono su Ubuntu 16.04 Unity installati gli ultimi aggiornamenti, ho uno dei migliori laptop da gioco Asus sul mercato, VLC è installato ma non lo uso mai.

Negli ultimi mesi, non sono stato in grado di spegnere il mio PC, ogni volta che provo a farlo, le ventole iniziano a girare così velocemente e si blocca, quindi basta premere il pulsante di spegnimento, quel problema era solo allo spegnimento , non riavviare Non mi sono nemmeno preoccupato di provare a risolvere il problema.

Oggi, mentre stavo lavorando, ho notato che i fan stavano facendo la stessa cosa che normalmente fanno mentre si spengono. Ho topnotato che 2 istanze di vlc vengono eseguite con il mio nome utente e consumano circa il 122% di cpu ciascuna, anche se di nuovo non uso vlc e non sto usando alcun programma che si basa su vlc.

Ho provato a sudo kill <pid>e sudo killall <pid>e sudo killall vlc, ma ancora non sono stati uccisi, che non è mai successo a me prima. Li ho uccisi dal monitor delle risorse di Ubuntu, sono stati uccisi e il problema di spegnimento è stato risolto, e tutto è tornato alla normalità.

È successo a qualcuno prima?


Ciao Lynob, ho appena aggiornato lo script nella mia risposta in modo da essere compatibile con crontab, che per impostazione predefinita funziona con un numero limitato di variabili di ambiente ... Ora, secondo i miei test, lo script funziona come previsto.
pa4080,

2
Se sei interessato a scoprire perché sta accadendo, potresti correre la ps aux | grep " $(echo -n $(pgrep vlc | xargs ps -o ppid | tail -n +2 | tr -d ' ') | sed 's/ / \\| /g') "prossima volta che succede. Ciò troverebbe tutte le istanze in esecuzione di VLC, otterrebbe i PID principali per ciascuno di essi e quindi cercherebbe i PID principali nell'output di ps aux. Potrebbe aiutare a rintracciare il problema.
anonymoose,

3
Per la cronaca, sudo kill -9 <pid>probabilmente avrebbe funzionato dove proprio killno. Il -9mezzo "Uccidi tutto ciò che si muove, con estremo pregiudizio, nel modo più raccapricciante possibile". Non può sopravvivere molto. Senza -9, è più come "Per favore, muori? Per favore, abbastanza per favore con una ciliegia in cima?"
trysis

1
@trysis: stai attento kill -9, è pericoloso. Se ad esempio l'applicazione ha creato un file temporaneo in /var/lock, non verrà rimosso. Allo stesso modo, i buffer non verranno svuotati, le transazioni del database non verranno impegnate, ecc. Potresti finire con dati corrotti o mancanti se qualcosa fosse scritto ovunque. VLC probabilmente non sta facendo nessuna di queste cose, ma consiglierei di provare a capire il problema prima di assumere.
Kevin

1
A proposito, i problemi del 99% che ho avuto con VLC sospeso e facendo altre "cose ​​strane" erano dovuti al fatto che cercava di usare l'accelerazione hardware per la decodifica video o di usare il backend video "sbagliato" (qualunque cosa ciò possa significare); Proverei a giocherellare con quella roba (disabilitare l'accelerazione HW per i codec, provare a cambiare il backend dell'uscita video) e vedere se ne deriva qualcosa di buono.
Matteo Italia,

Risposte:


10

Sto riscontrando un problema simile con il lettore VLC. Ma la differenza è che lo sto usando spesso. Ecco una possibile soluzione (non completamente dimostrata) per questo problema su Ubuntu 16.04 con Unity.

In base a questa risposta, è possibile verificare se esiste un file desktop dell'applicazione in esecuzione denominato vlc. Se non c'è nessuno, possiamo provare a uccidere tutti i processi di VLC. A tal fine, crea un file eseguibile, denominato ~/bin/vlc-killer.sh, e aggiungi le seguenti righe come contenuto (ecco un riferimento sugli envvars esportati):

#!/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

Quindi apri il Crontab dell'utente per edit ( crontab -e) e applica il seguente lavoro (che eseguirà il nostro script ogni minuto) in fondo:

* * * * * $HOME/bin/vlc-killer.sh >/dev/null 2>&1

1
Se ho ragione, questo funziona solo quando almeno un'istanza di è vlcstata avviata tramite la GUI. Se sei abituato a correre vlc movie.mpgesclusivamente dalla riga di comando (come me), questo interromperà il vlcprocesso dopo un minuto. Comunque, bella soluzione e +1 comunque.
PerlDuck,

2
@PerlDuck, mentre esiste un'icona "VLC" attiva (in Dash Launcher ) lo script funziona, indipendentemente dal fatto che VLC sia avviato da un file .desktop o dalla CLI.
pa4080,

1
Oh, fico. Non ne ero a conoscenza.
PerlDuck,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.