VLC的这种行为正常吗?


11

我正在安装ubuntu 16.04统一最新更新,我拥有市场上最好的Asus游戏笔记本电脑之一,已安装VLC,但我从未使用过。

在过去的几个月中,我一直无法关闭PC,每次尝试这样做时,风扇开始旋转得如此之快,它挂起了,所以我只按了“关闭”按钮,问题就只在关闭时出现。 ,无法重启,我什至都没有试图解决问题。

今天,当我在工作时,我注意到风扇在关机时所做的与平时一样。我top发现有2个vlc实例正在我的用户名下运行,每个实例消耗122%的cpu,尽管我再次不使用vlc,并且我没有使用任何依赖vlc的程序。

我试图sudo kill <pid>sudo killall <pid>sudo killall vlc,但他们仍然没有死亡,那以前从未发生在我身上。我从Ubuntu资源监视器中杀死了它们,它们被杀死,并且关闭问题已修复,一切恢复正常。

以前有人发生过吗?


嗨,Lynob,我刚刚以与crontab兼容的方式更新了答案中的脚本,默认情况下,该脚本可以使用有限数量的环境变量...现在,根据我的测试,脚本可以按预期运行。
pa4080

2
如果您有兴趣了解发生原因,可以在ps aux | grep " $(echo -n $(pgrep vlc | xargs ps -o ppid | tail -n +2 | tr -d ' ') | sed 's/ / \\| /g') "下次发生时运行。这将找到所有正在运行的VLC实例,获取每个实例的父PID,然后在的输出中搜索父PID ps aux。这可能有助于找出问题所在。
anonymoose19年

3
根据记录,sudo kill -9 <pid>可能在kill没有的地方工作。的-9意思是“杀死任何移动,与极端的偏见,以最可怕的方式。” 没有多少可以生存。没有-9,它更像是“请死?请,请在上面放上樱桃,好吗?”
trysis'1

1
@trysis:注意kill -9,这很危险。例如,如果应用程序在下创建了一个临时文件/var/lock,则不会将其删除。同样,不会刷新缓冲区,不会提交数据库事务,等等。如果在任何地方写入任何内容,最终可能会导致数据损坏或丢失。VLC 可能没有做任何这些事情,但是我建议您在尝试之前先尝试理解问题。
凯文(Kevin)

1
顺便说一句,我在VLC挂起和执行其他“奇怪的事情”时遇到的问题有99%是由于它试图使用硬件加速来进行视频解码,或者是使用了“错误的”(可能意味着)视频后端。我会尝试摆弄这些东西(禁用编解码器的硬件加速,尝试更改视频输出后端),然后查看是否有任何好处。
Matteo Italia

Answers:


10

我在VLC播放器中遇到类似的问题。但是区别是我经常使用它。这是在带有Unity的Ubuntu 16.04上针对此问题的一种可能的解决方法(未经充分验证)。

根据这个答案,我们可以测试是否有一个正在运行的应用程序桌面文件名为vlc左右。如果没有人,我们可以尝试杀死所有VLC的进程。为此,创建一个名为的可执行文件,~/bin/vlc-killer.sh并添加以下几行作为其内容(这是有关导出的envvars 的参考):

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

然后打开用户的Crontab进行编辑(crontab -e),并在底部应用以下作业(每分钟将执行我们的脚本):

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

1
如果我是对的,那么仅当至少一个实例vlc通过GUI启动时,此方法才有效。如果习惯于vlc movie.mpg仅从命令行运行(就像我一样),这将vlc在一分钟后终止该进程。不过,无论如何还是不错的解决方案和+1。
PerlDuck

2
@PerlDuck,尽管有一个活动的VLC“图标”(在Dash启动程序中),该脚本仍然有效,无论VLC是由.desktop文件启动还是由CLI启动。
pa4080

1
哦,酷。我没有意识到这一点。
PerlDuck
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.