VLCのこの動作は正常ですか?


11

私はubuntu 16.04 Unity最新アップデートをインストールしています。市場で最高のAsusゲーミングラップトップの1つを持っています。VLCはインストールされていますが、使用しません。

過去数か月間、PCをシャットダウンできませんでした。毎回、ファンが非常に高速に回転し始め、ハングするため、シャットダウンボタンを押すだけで、その問題はシャットダウン時にのみ発生しました。 、再起動ではなく、私は問題を解決しようとしても気にしませんでした。

今日、私が働いている間に、ファンがシャットダウン中に通常行うのと同じことをしていることに気付きました。私はtop、vlcを使用せず、vlcに依存するプログラムを使用していないにもかかわらず、それぞれ122%cpuのようなユーザー名で2つの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ます。問題の追跡に役立つ場合があります。
アノニムース

3
記録に関しては、sudo kill -9 <pid>おそらく機能killしなかった場所で機能していたでしょう。-9手段「キル何でもその可能な限り最も陰惨な方法で、極端な偏見と移動し、」。あまり生き残れない。なしでは-9、「死んでください。さあ、さくらんぼを上にしてください。」のようなものです。
トリシス

1
@trysis:に注意してくださいkill -9、それは危険です。たとえば、アプリケーションがの下/var/lockに一時ファイルを作成した場合、それは削除されません。同様に、バッファがフラッシュされたり、データベーストランザクションがコミットされたりすることはありません。何かがどこかに書き込まれていると、データが破損したり失われたりする可能性があります。VLCはおそらくこれらのことを何もしていませんが、想定する前に問題を理解することを試みることをお勧めします。
ケビン

1
ところで、VLCのハングやその他の「奇妙なこと」を行うことで私が抱えていた99%の問題は、ビデオデコードにハードウェアアクセラレーションを使用しようとしたか、「間違った」ビデオバックエンドを使用したためです。私はそのようなものをいじり(コーデックのハードウェアアクセラレーションを無効にし、ビデオ出力バックエンドを変更しようとします)、そこから何か良いものが得られるかどうかを確認します。
マッテオイタリア

回答:


10

VLCプレーヤーでも同様の問題が発生しています。しかし、違いは頻繁に使用していることです。以下は、Unityを使用したUbuntu 16.04でのこの問題の回避策の1つです(完全には証明されていません)。

この回答によれば、実行中のアプリケーションデスクトップファイルが存在するかどうかをテストできます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
私が正しい場合、これは少なくとも1つのインスタンスがvlcGUIを介して開始された場合にのみ機能します。vlc movie.mpgコマンドラインからのみ実行することに慣れている場合(私と同じように)、これはvlc1分後にプロセスを強制終了します。しかし、とにかく素敵なソリューションと+1。
PerlDuck

2
@PerlDuck、アクティブなVLC "アイコン"(ダッシュランチャー内)がありますが、VLCが.desktopファイルまたはCLIのどちらで起動されても、スクリプトは機能します。
pa4080

1
かっこいい、イケてる。私はそれを知りませんでした。
PerlDuck
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.