명령 행에서 그놈 쉘을 다시 시작하는 방법?


50

버그 가 발생할 때마다 gnome-shell을 다시 시작하는 키보드 단축키를 구현하고 싶습니다 ( 일부 버그 는 아직 수정되지 않았습니다). 이를 위해 쉘을 다시 시작하려면 명령 줄이 필요합니다.

Alt+ F2restart명령 프롬프트가 구현되어 있기 때문에 쉘이 추락 할 때 작동하지 않습니다 쉘.

따라서 명령 줄에서 gnome-shell을 다시 시작하는 방법은 무엇입니까?


참고 : Alt + F2를 restart누르면 실행중인 모든 프로그램이 중지됩니다. (나는 여전히 프로그램을 멈추지 않고 GUI를 다시 시작하는 방법을 모른다.)
Andriy Makukha

답변:


48

gnome-shell을 바꾸는 명령은 다음과 같습니다 gnome-shell --replace.

의 매뉴얼 페이지에서 gnome-shell:

--replace             Replace the running window manager

2
고마워요 --replace= "다시 시작"을 확신하지 못했습니다 .
Benjamin

4
Ubuntu 18.10의 GNOME Shell 3.30.1부터이 솔루션은 더 이상 작동하지 않으며 사용자를 로그인 화면으로 띄워 모든 작업을 잃게됩니다. 올바른 해결책은 "killall -3 gnome-shell"또는 ALT + f2 및 r (가능한 경우) 명령 행입니다.
C.Rogers

1
ALT+f2(명령 프롬프트 표시) + gnome-shell --replace는 18.04에서 잘 작동합니다. 실행중인 모든 프로그램이 중지되지 않습니다.
lifeisfoo

나는 그놈 쉘을 죽이지 않고 터미널을 닫을 수 있도록 백그라운드에 프로세스를 넣기 위해 명령의 끝에 앰퍼샌드를 추가합니다.gnome-shell --replace &
Teddy

31

가장 쉬운 방법은 Alt+ F2를 입력 r한 다음을 입력하는 것 입니다.


5
그것은 사실이지만 정확히 질문은 아닙니다. 문제는 다음과 같습니다. 이렇게하면 어떻게됩니까? 스스로 할 수 있도록
sehe

4
Ubuntu 18.10의 GNOME Shell 3.30.1 및 명령 줄 : "killall -3 gnome-shell"이 여기에 게시 된 유일한 솔루션입니다. 다른 모든 사용자는 사용자를 로그인 화면으로 불러내 어 모든 작업을 잃습니다.
C.Rogers

1
데비안 버스터에서 이것을 시도했습니다. "경로에서 다시 시작할 수 없습니다"오류가 발생합니다.
livinston

26

당신은 또한 할 수 있습니다 killall -3 gnome-shell.


2
사람들이 왜이 명령을 계속 추천하는지 모르겠습니다. 이 모든 것은 gnome-shell을 죽이는 것입니다. 다시 시작하는 질문에 어떻게 대답 했습니까?
smac89

1
아마도 이것은 다른 명령이 작동하지 않는 좋은 솔루션이기 때문일 것입니다. 나는 둘 다 시도했지만 선택한 것이 좋지만 내 문제는 해결하지 못했습니다.
Mitro

2
우분투 18.10부터 그놈 쉘 3.30.1-이것은 올바른 해결책입니다. 다른 모든 솔루션은 세션을 다시 시작하고 사용자를 로그인 화면으로 불러내 어 모든 작업을 잃습니다.
C.Rogers

3
SIGQUIT (3)는 프로세스를 종료하지 않습니다
Jack Wasey

이것은 나를 위해 작동하는 것 같았습니다. 내가 gnome-shell --replace &전에 사용했던 반면 . 작동했지만 터미널에서 계속 실행되었습니다. 내가 겪고있는 문제는 어떻게 든 Dash-to-Dock과 패널이 멈추는 유튜브 비디오와 관련이 있습니다. github.com/micheleg/dash-to-dock/issues/…
Natetronn

5

명령은이어야합니다 gnome-shell --replace.


3
Ubuntu 18.10의 GNOME Shell 3.30.1부터이 솔루션은 더 이상 작동하지 않으며 사용자를 로그인 화면으로 띄워 모든 작업을 잃게됩니다. 올바른 해결책은 "killall -3 gnome-shell"또는 ALT + f2 및 r (가능한 경우) 명령 행입니다.
C.Rogers

원격 세션에서는 작동하지 않으므로 gnome shell이 ​​작동 중지되면 작동하지 않습니다.
Jack Wasey

5

전체 gnome-shell가 고정 된 경우 전체 X 창을 다시 시작하지 않고 터미널에서 다시 시작하는 방법이 있습니다.

  • Ctrl+ Alt+ F2터미널로 전환
  • 신임 정보 (사용자 이름 및 비밀번호)로 로그인 한 후 다음을 실행하십시오.
  • DISPLAY=:0 gnome-shell -r &
  • 로그 아웃 exit하고
  • Alt+ F1그래픽 인터페이스 X 창으로 다시 전환합니다.

1

이 기능을 사용하여 사용자를 로그 아웃했습니다 (아래 참조).

가정

  • 당신은 sudo 권한이 있습니다
  • 당신은 배쉬가
  • 사용자는 X 세션을 1 회 실행합니다 (남은 세션을 제거하기 위해 동일한 로그 아웃 명령을 여러 번 발행 할 수는 있지만)

여러 개의 사용자 이름을 지정할 수 있습니다.

logout john jane mike elisa

추가 옵션을 제공 할 수 있습니다.

logout john --force

그래서 다음과 같은 도우미 기능이 있습니다.

function forcelogout() {
    logout "$@" --no-prompt --force
}

노트:

  • 이것은 무딘 도구이며 전체 세션 환경을 복사하여 작동합니다. 이것은 더 선택적 일 수 있습니다.
  • 때때로 로그 아웃하는 데 시간이 오래 걸리는 것 같습니다
  • 드문 경우에 누군가 세션이 실행 된 VT를 방문 할 때까지 세션이 계속보고되지만 더 이상 아무것도 없습니다.)

암호

function logout() {
    local USERNAME
    export USERNAMES=( ) 
    while [ -n "$1" ]; do case "$1" in
        -* ) break ;;
        *) USERNAMES+=( "$1" ); shift ;;
    esac; done

    for USERNAME in "${USERNAMES[@]}"; do
        local SESSION_PID=$(pgrep -fu "$USERNAME" gnome-session|head -1)
        if [ -n "$SESSION_PID" ]; then
            (
                sudo -u "$USERNAME" cat "/proc/$SESSION_PID/environ" | xargs -0 -n 1 echo export
                echo "gnome-session-quit --logout $@"
            ) | sudo -u "$USERNAME" sh -;
        fi
    done
}

1

별명을 정의했습니다. alias gnomeshellrestart='echo "gnome-shell --replace -d" $(w| grep "$USER"| awk "{print \$3}"|grep ":"|head -1)| at now'

백그라운드에서 마우스로 마우스 오른쪽 버튼을 클릭하고 터미널을 입력하여 터미널을 시작할 수 있습니다 (그렇지 않으면 alt-tab은 dysfct입니다). 그렇지 않으면 ctrl-alt-F2로 tty에 로그인하고 거기에서 실행하십시오.

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