응답하지 않거나 멈춘 후 Gnome-shell을 다시 시작하는 방법은 무엇입니까?


123

때때로, 그놈 껍질이 멈 춥니 다. 나는 백그라운드 프로세스가 작동하는 것을 볼 수 있지만 (음악 재생 중), 그놈에서는 아무것도 할 수 없습니다. 아니요 Alt+ F2+ R.

Ctrl+ Alt+를 사용하여 콘솔로 전환 F1하고 동일한 사용자로 로그인 하여 다음 을 실행할 수 있습니다.

gnome-shell --replace

Ctrl+으로 돌아 가면 F7이상한 동작이 나타납니다. 예를 들어 네트워크 연결을 편집 할 수 없습니다. 로그 아웃 할 수 없습니다. gnome-shell을 다시 시작하는 올바른 방법은 무엇입니까?


에서 검색 기능을 사용하는 동안 gnome-shell overview또는 특정 상황 에서 gnome-shell이 ​​중지 됩니까?
v2r

1
아니요, 일반적으로 도킹 해제 후 로그인 후 (대부분) 정지됩니다.
jk_

2
지금까지 작동하는 솔루션을 찾지 못했습니다. 결국 이 해결 방법으로 끝납니다 .
jk_

extensions.gnome.org에서 쉘 확장을 사용하는 경우 모든 확장을 비활성화하고 재부팅하여 그 중 하나가 문제를 일으키는 지 확인하십시오. 나는 이전 버전의 gnome-shell을 사용하고 정확한 원인으로 인해 많은 문제가있었습니다! (아마도 그렇게 간단
할까요

1
나는 여전히 문제를 겪고있는 그들 모두를 비활성화하려고했습니다 :(
jk_

답변:


173

가장 쉬운 방법은 Alt+를 누르고 나서를 F2입력하는 것 입니다. 쉘을 사용할 수있을 때까지 작동합니다.rEnter

쉘 만 종료 SIGQUIT하는 gnome-shell프로세스로 보낼 수도 있습니다 .

killall -3 gnome-shell

다른 방법은 더 파괴적인 수단을 사용하므로 모든 응용 프로그램을 닫을 수는 없습니다.


3
SIGHUP그러나 팁 +1 은 올바른 명령이 killall -1 gnome-shell아닌가? 에 따라 적어도 man 7 signalSIGHUP은 1입니다. 값 3은에 해당합니다 SIGQUIT. Gnome Shell에 값 1을 보냈으며 예상대로 깨끗하게 다시 시작되었습니다.
Chriki

@Chriki 네, 대부분의 신호를 통해 그놈 쉘 프로세스가 끝날 것입니다.
Braiam

Fedora 25 에서이 작업을 시도 killall -3 gnome-shell하여 모든 응용 프로그램이 종료되었습니다.
comfreak

6
또한 전체 화면을 Alt+F2r
비우지

우분투 VM에서 그놈이 충돌하는 문제가 발생하여 VM이 발생할 때마다 VM을 다시 시작해야했습니다. 이 명령을 ssh하고 사용할 수 있으면 백만에 감사하는 문제가 해결됩니다.
Nathan F.

32
  • "nicely"gnome-shell에게 자체 재시작을 요청하려면 다음 명령을 사용하여 dbus를 통해 내부 재시작 기능을 호출 할 수 있습니다 ( DBUS_SESSION_BUS_ADDRESSenv var가 올바른 값으로 설정되고 동일한 사용자로 실행 된다고 가정 ).

    dbus-send --type=method_call --print-reply --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'global.reexec_self()'
    
  • 새 인스턴스를 실행하려면 올바르게 gnome-shell --replace수행해야합니다. 콘솔 DISPLAY에서 DBUS*와 같은 필요한 환경 변수를 정의해야합니다 . 인용하다/proc/$gnome_shell_pid/environ

  • 기존 것을 다시 시작하려면 다시 시작 killall -HUP gnome-shell하십시오. 그래도 너무 자주 수행하면 gnome-shell이 ​​모든 확장을 비활성화하거나 강제로 로그 오프하거나 사용자에게 친숙하지 않은 방식으로 동작 할 수 있습니다.

나는 그놈 쉘 프로세스 환경에서 DBUS_SESSION_BUS_ADDRESS을 설정하는 쉘 기능을 생성 (당신이 할 수 있도록 logout otheruser1 otheruser2) askubuntu.com/a/874504/17941
sehe

3
Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.Shell was not provided by any .service filessudo와 sudo 가 없으면 오류가 발생했습니다 Failed to open connection to "session" message bus: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11.
Seanny123

7

다른 해결 방법은 다음과 같습니다.

  1. CTRL+ ALT+ 를 눌러 로컬 터미널에 로그인하십시오 F1.
  2. 다음 명령을 실행하십시오 :

    sudo kill -HUP $(pidof gnome-shell)
    
  3. CTRL+ ALT+ 를 눌러 그래픽 인터페이스로 돌아갑니다 F7.

추신 : gdm3 대신 lightdm을 사용하고 있습니다.


1
간단하고 매력처럼 작동합니다! (적어도 나를 위해)
Katai

6

우분투 그놈을 설치했다면, 그놈 디스플레이 관리자를 사용하고있을 것입니다. 이 경우 Ctrl + Alt + F4와 같은 다른 TTY로 변경 한 다음

sudo service gdm restart

나는 또한 최근 그러한 상황에 관한 기사를 썼습니다 :

도와주세요, 내 리눅스 데스크탑이 멈 춥니 다!

최고의 행운!


6
조심 , 나는 같은 TTY에했던이 내 현재 세션을 죽일 ..
RousseauAlexandre

이것은 현재 세션을 완전히 망쳤습니다. 깜박이기 시작한 다음 너바나로갔습니다.
Nik O'Lai

5

에 만족하지 않으므로 gnome-shell --replace디스플레이 관리자 자체를 다시 시작하려고 할 수 있습니다.

sudo service lightdm restart

나는 그것이 당신이 실행중인 다른 프로세스를 죽일 것이라고 생각합니다. 또한 http://worldofgnome.org/how-to-restart-gnome-shell-when-freezes-if-ever/를 참조 하십시오

매번 멈출 수있는 무언가가 심각하다면 https://www.kernel.org/doc/Documentation/admin-guide/sysrq.rst에 언급 된대로 SysRq를 활성화 한 다음 <alt><sysrq/print_screen_key><k>그 안에있는 모든 것을 죽이십시오. 화면.


3
lighdm을 다시 시작하면 효과가 있지만 모든 것을 처음부터 다시 열어야하기 때문에 피하고 싶습니다. 특히 Gnome-shell의 문제이며 다시 시작하면 거의 작동합니다.
jk_

나는 그놈 껍질을 억제하는 다른 방법을 모른다. 당신 DISPLAY=:7 gnome-shell --replace은 작동 여부를 시도 했습니까 ?
Jay Aurabind

1
아니요, w표시가 : 0 과 다른 경우 표시를 사용하지 않습니다 . 잘못된 디스플레이를 사용하면 오류가 발생합니다.
jk_

죄송합니다. 옵션이 없습니다. gnome 사용자 / 개발자 메일 링리스트에 문의해야합니다. 먼저 그놈이 권장하는 방법 으로 alt-f2-r또는 왜 이상이 있는지 알아보십시오 gnome-shell --replace.
Jay Aurabind

나는 더 많은 ENV 변수를 설정하는 이 링크를 따랐 지만 다른 터미널에서 gnome-shell을 다시 시작할 때 여전히 네트워크 연결을 편집 할 수 없습니다. 결국, 나는 이 트릭으로
jk_

2

때로는 설명과 같은 문제가 있으며 내 해결책은 다음과 같습니다.

Ctrl+ Alt+ F1, 동일한 사용자로 로그인하고 다음을 실행하십시오.

sudo pkill -9 ^gnome-shell

Ctrl+ Alt+ 로 돌아갑니다F7

이것이 올바른 방법이라면, 나는 모른다. 나를 위해 그것은 매번 작동합니다.


3
이것은 다중 사용자 시나리오에서 수행하고 싶지 않은 gnome-shell의 모든 사용자 인스턴스를 종료합니다. 일반적으로 당신은 단지 자신의 (pkill에 -HUP 그놈 쉘)을 죽여야
Steeve 맥컬리

3
kill -9는 내가 생각하는 약간 파괴적입니다. robertwe.github.io/2015/03/19/why-you-shoudnt-use-kill--9
Robert

그것은 나를 위해 작동합니다 ...! 당신은 내 하루를 저장합니다. 감사합니다.
NomanJaved

2

X를 다시 시작하십시오

  • 먼저 다음 명령으로 Ubuntu가 사용하는 디스플레이 관리자를 찾으십시오.

    cat /etc/X11/default-display-manager
    

    내 경우에는 /usr/sbin/gdm3

    내부 X 또는 외부 X에서

  • 방법 1-4의 경우 w명령 을 사용하여 사용중인 디스플레이를 찾으십시오 .

    w
    

    대답은 예를 들어 tty3, (내 (ack 's) "내 디스플레이로 돌아 가기"키는 Ctrl + Alt + F3입니다.

행동 양식

  1. 종료하려면 Ctrl + Alt + F1, 다시 가져 오려면 Ctrl + Alt + F3
  2. sudo /etc/init.d/gdm3 restart
  3. systemctl restart gdm.service
  4. sudo service gdm3 restart
  5. dbus-send --type=method_call --print-reply --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'global.reexec_self()'
  6. 쉬운 방법은 Alt + F2 r를 누르고 입력 한 다음 Enter 키 를 누르는 것입니다. 쉘을 사용할 수 없을 때까지 작동합니다.

방법 5는 korc의 답변 에서 그대로 , 6은 Braiam의 답변 에서 그대로 해제됩니다 . 표절은 여기서 규칙에 위배되지는 않지만 확실히 시원하지는 않습니다. 실제로해야 할 일은 작품을 인용 부호로 묶어 자신의 작품이 아니라는 것을 표시하고 소스 게시물에 대한 링크와 작성자의 프로필 페이지에 대한 링크를 포함하여 저작자 표시를 제공하는 것입니다. 자세한 내용은 다음 블로그 게시물을 참조하십시오 : Attribution Required
wjandrea

1
  1. 터미널 창으로 전환하려면 Ctrl + Alt + F2를 누르십시오. 때로는 불가능합니다.

  2. 키보드를 가져 오려면 Alt + SysRq + R을 누르십시오.

  3. 실패하기 전에 Ctrl + Alt + F2를 누르면 지금 다시 시도하십시오.

  4. Alt + SysRq + E를 눌러 모든 프로세스를 종료하십시오.

  5. 모든 프로세스를 종료하려면 Alt + SysRq + I를 누르십시오.

  6. 디스크를 동기화하려면 Alt + SysRq + S를 누르십시오.

  7. 확인 또는 완료 메시지를 기다리십시오. 메시지가 표시되지 않으면 HDD 표시등을보고 동기화에 차이가 있는지 확인하십시오.

  8. 모든 디스크 드라이브를 마운트 해제하려면 Alt + SysRq + U를 누르십시오.

  9. 확인 또는 완료 메시지를 기다리십시오. 15-30 초 내에 메시지가 표시되지 않으면 디스크가 마운트 해제되었거나 마운트 해제가 불가능하다고 가정하고 진행하십시오.

  10. 재부팅하려면 Alt + SysRq + B를 누르십시오.


0

kill -15 gnome-shell나를 위해 작동하지 않지만 kill -9않습니다. kill -9gnome-shell이 ​​자체 재시작하도록 트리거하는 segfault를 트리거 하기 때문 이지만 kill -15그렇지는 않습니다.


2
kill -9segfault를 트리거하지 않습니다. SIGKILL은 포착 할 수없는 신호이며, 유일한 조치는 즉시 종료됩니다. 응용 프로그램이 15 인 SIGTERM에 응답하지 않는 경우에만 사용해야합니다.
muru

pkill -11 gnome-shell문자 그대로 신호 11 이하는 것이므로 segfault를 트리거합니다. BTW, 프로세스 이름이 아닌kill 프로세스 ID가 필요합니다 . 당신은 의미했다 나 ? pkillkillall
TSJNachos117
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.