พฤติกรรมนี้ของ VLC ปกติหรือไม่


11

ฉันติดตั้งตัวอัปเดตล่าสุดของอูบุนตู 16.04 ฉันมีแล็ปท็อปเกม Asus ที่ดีที่สุดตัวหนึ่งในตลาดติดตั้ง VLC แต่ฉันไม่เคยใช้เลย

ในช่วงไม่กี่เดือนที่ผ่านมาฉันไม่สามารถปิดเครื่องคอมพิวเตอร์ของฉันได้ทุกครั้งที่ฉันพยายามทำเช่นนั้นแฟน ๆ เริ่มหมุนเร็วมากและมันก็หยุดทำงานดังนั้นฉันจึงกดปุ่มปิดเครื่องปัญหาก็คือเมื่อปิดเครื่อง ไม่ใช่รีสตาร์ทฉันไม่ต้องพยายามแก้ปัญหาด้วยซ้ำ

วันนี้ในขณะที่ฉันกำลังทำงานฉันสังเกตเห็นว่าแฟน ๆ ทำสิ่งเดียวกันกับที่พวกเขาทำตามปกติในขณะที่ปิดเครื่อง ฉันtopพบว่าอินสแตนซ์ vlc 2 อันทำงานภายใต้ชื่อผู้ใช้ของฉันที่บริโภคเช่น 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 รับ PIDs หลักสำหรับแต่ละของพวกเขาแล้วค้นหา PIDs ps auxผู้ปกครองในการส่งออกของ มันอาจช่วยในการติดตามปัญหา
anonymoose

3
สำหรับบันทึกsudo kill -9 <pid>อาจจะทำงานที่killไม่ได้ -9หมายถึง "ฆ่าอะไรที่เคลื่อนไหวด้วยอคติมากในทางที่น่ากลัวมากที่สุด" ไม่มากสามารถอยู่รอดได้ ถ้าไม่มี-9มันก็เหมือน "โปรดตายได้ไหมได้โปรดได้โปรดเถอะด้วยเชอร์รี่อยู่ข้างบน"
trysis

1
@trysis: ระวังด้วยkill -9มันอันตราย หากตัวอย่างเช่นแอปพลิเคชันได้สร้างไฟล์ชั่วคราวใต้ไฟล์/var/lockนั้นจะไม่ถูกลบ ในทำนองเดียวกันบัฟเฟอร์จะไม่ถูกลบออกการทำธุรกรรมฐานข้อมูลจะไม่ถูกส่ง ฯลฯ คุณสามารถจบลงด้วยข้อมูลที่เสียหายหรือหายไปหากมีการเขียนอะไรก็ตาม VLC อาจไม่ได้ทำสิ่งเหล่านั้น แต่ฉันขอแนะนำให้พยายามทำความเข้าใจปัญหาก่อนที่จะสมมติ
Kevin

1
BTW ปัญหา 99% ที่ฉันมีกับ VLC ที่แขวนอยู่และทำสิ่ง "แปลก ๆ " อื่น ๆ เกิดขึ้นเนื่องจากพยายามใช้การเร่งความเร็วฮาร์ดแวร์สำหรับการถอดรหัสวิดีโอหรือใช้ "แบ็คเอนด์" ผิดปกติ ฉันจะลองทำกับสิ่งนั้น (ปิดใช้งานการเร่งความเร็ว HW สำหรับตัวแปลงสัญญาณลองเปลี่ยนแบ็กเอนด์วิดีโอเอาต์พุต) และดูว่ามีอะไรดีมาจากมันบ้าง
Matteo Italia

คำตอบ:


10

ฉันประสบปัญหาคล้ายกันกับเครื่องเล่น VLC แต่ความแตกต่างคือฉันใช้มันบ่อยครั้ง นี่เป็นวิธีหนึ่งที่เป็นไปได้ (ไม่ได้พิสูจน์อย่างสมบูรณ์) สำหรับปัญหานี้ใน Ubuntu 16.04 ที่มี Unity

ตามคำตอบนี้เราสามารถทดสอบว่ามีชื่อไฟล์เดสก์ท็อปแอปพลิเคชันที่รันอยู่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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.