이 VLC 동작이 정상입니까?


11

Ubuntu 16.04 unity 최신 업데이트가 설치되어 있으며 시장에서 최고의 Asus 게임 랩톱 중 하나가 있으며 VLC가 설치되어 있지만 절대 사용하지는 않습니다.

지난 몇 달 동안 PC를 종료 할 수 없었습니다. 매번 시도 할 때마다 팬이 너무 빨리 회전하기 시작하여 정지합니다. 따라서 종료 버튼을 누르면 문제가 종료 된 것입니다. , 다시 시작하지 않고 문제를 해결하려고 시도조차하지 않았습니다.

오늘 일하는 동안 팬이 종료하는 동안 평소와 같은 일을하는 것을 보았습니다. 나는 topvlc를 사용하지 않지만 vlc를 사용하는 프로그램을 사용하지 않지만 각각의 122 % CPU와 같은 사용자 이름으로 2 개의 vlc 인스턴스가 실행되는 것을 알았 습니다 .

나는하려 sudo kill <pid>하고 sudo killall <pid>그리고 sudo killall vlc여전히 그들은 전에 나에게 무슨 일이 있었 결코 살해되지 않았다. 우분투 리소스 모니터에서 그들을 죽였고, 그들은 죽었고 종료 문제가 해결되었으며 모든 것이 정상으로 돌아갔습니다.

전에 누구에게 그런 일이 있었습니까?


안녕하세요, 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. 문제를 추적하는 데 도움이 될 수 있습니다.
anonymoose

3
기록을 위해, sudo kill -9 <pid>아마도 kill그렇지 않은 곳에서 일했을 것입니다 . 그 -9의미는 "극단적 인 편견을 가지고 가장 끔찍한 방법으로 움직이는 것을 죽인다" 는 의미입니다. 그것을 살아남을 수는 없습니다. 없이는 -9"제발 죽어? 제발, 체리 위에 올려주세요."
trysis

1
@trysis : 조심하세요 kill -9. 위험합니다. 예를 들어 응용 프로그램이에서 임시 파일을 만든 /var/lock경우 제거되지 않습니다. 마찬가지로 버퍼가 플러시되지 않고 데이터베이스 트랜잭션이 커밋되지 않습니다. 어떤 곳에서든 쓰면 데이터가 손상되거나 누락 될 수 있습니다. VLC는 이러한 작업을 수행하지 않을 수도 있지만 가정하기 전에 문제를 이해하는 것이 좋습니다.
Kevin

1
BTW, VLC 중단 및 기타 "이상한 것들"과 관련된 99 % 문제는 비디오 디코딩에 하드웨어 가속을 사용하려고하거나 "잘못된"(무슨 의미가있는) 비디오 백엔드를 사용했기 때문입니다. 나는 그 물건들과 어울리려고 노력한다 (코덱에 대한 HW 가속을 비활성화하고 비디오 출력 백엔드를 변경하려고 시도한다).
Matteo Italia

답변:


10

VLC 플레이어와 비슷한 문제가 발생했습니다. 그러나 차이점은 내가 자주 사용한다는 것입니다. Unity가있는 Ubuntu 16.04 에서이 문제에 대한 가능한 해결책은 다음과 같습니다.

이 답변 에 따르면 실행중인 응용 프로그램 데스크톱 파일이 있는지 여부를 테스트 할 수 있습니다 vlc. 아무도 없다면 우리는 모든 VLC 프로세스를 죽일 수 있습니다. 이를 위해이라는 이름의 실행 파일을 작성 ~/bin/vlc-killer.sh하고 컨텐츠로 다음 행을 추가하십시오 ( 내 보낸 envvar에 대한 참조 ).

#!/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
내가 맞다면 적어도 하나의 인스턴스가 vlcGUI를 통해 시작 되었을 때만 작동합니다 . vlc movie.mpg명령 줄에서만 실행 하는 데 익숙한 경우 (예 : i) vlc1 분 후에 프로세스가 종료됩니다. 그러나 좋은 솔루션과 +1입니다.
PerlDuck

2
@PerlDuck, VLC가 .desktop 파일에 의해 시작 되든 CLI에 의해 시작 되든 상관없이 활성 VLC "아이콘"( 대시 실행기 )이있는 동안 스크립트가 작동합니다.
pa4080

1
오, 멋지다. 나는 그것을 몰랐다.
PerlDuck
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.