Làm cách nào để khởi động lại Gnome Shell từ dòng lệnh?


51

Tôi muốn thực hiện một phím tắt để khởi động lại gnome-shell bất cứ khi nào lỗi này xảy ra ( một số lỗi hiện chưa được sửa). Đối với điều này, tôi sẽ cần một dòng lệnh để khởi động lại shell.

Lệnh Alt+ F2restartsẽ không hoạt động khi shell bị lỗi vì dấu nhắc được triển khai trong shell.

Do đó, làm thế nào để khởi động lại gnome-shell từ dòng lệnh?


LƯU Ý: Alt + F2 và restartsẽ dừng tất cả các chương trình đang chạy. (Tôi vẫn không biết cách khởi động lại GUI mà không dừng các chương trình.)
Andriy Makukha

Câu trả lời:


48

Lệnh thay thế gnome-shell sẽ là gnome-shell --replace.

Từ trang hướng dẫn của gnome-shell:

--replace             Replace the running window manager

2
Cảm ơn tôi đã không chắc chắn --replace= "khởi động lại".
Benjamin

4
Kể từ phiên bản Gnome Shell 3.30.1 trên Ubuntu 18.10, giải pháp này không còn hoạt động nữa và sẽ đưa người dùng đến màn hình đăng nhập, mất tất cả công việc của họ. Giải pháp chính xác bây giờ là dòng lệnh: "killall -3 gnome-shell", hoặc ALT + f2 và r (nếu có thể).
C.Rogers

1
ALT+f2(hiển thị dấu nhắc lệnh) + gnome-shell --replacesẽ hoạt động tốt trong 18.04. Tất cả các chương trình đang chạy sẽ không được dừng lại.
lifeisfoo

Tôi thêm dấu và vào cuối lệnh để đặt tiến trình vào nền để tôi có thể đóng thiết bị đầu cuối mà không giết gnome-shell:gnome-shell --replace &
Teddy

CẢNH BÁO: gnome-shell --replacetrên máy Ubuntu 19.10 của tôi khiến hầu hết các ứng dụng đang chạy đóng và gnome-shell rơi vào trạng thái sự cố với màn hình trắng và lời nhắc khởi động lại máy tính.
Sparr

31

Cách dễ nhất là Alt+ F2và gõ rsau đó .


5
Đó là sự thật, nhưng chính xác không phải là câu hỏi. Câu hỏi sau đó là: điều gì xảy ra khi bạn làm điều này. Để bạn có thể tự làm điều đó
sehe

4
Kể từ Gnome Shell 3.30.1 trên Ubuntu 18.10 và dòng lệnh: "killall -3 gnome-shell" là các giải pháp duy nhất được đăng ở đây hoạt động. Tất cả những người khác đá người dùng ra màn hình đăng nhập, mất tất cả công việc của họ.
C.Rogers

1
Đã thử điều này trên debian buster. Nhận được lỗi "Khởi động lại không khả dụng trên wayland".
livinston

26

Bạn cũng có thể làm a killall -3 gnome-shell.


2
Tôi không biết tại sao mọi người cứ đề nghị lệnh này. Tất cả điều này không phải là giết gnome-shell. Làm thế nào bạn đã trả lời câu hỏi khởi động lại nó?
smac89

1
Có lẽ bởi vì đây là một giải pháp tốt khi lệnh kia không hoạt động. Tôi đã thử cả hai, cái được chọn là tốt nhưng không giải quyết được vấn đề của tôi, trong khi điều này thì có.
Mitro

2
Kể từ Ubuntu 18.10, Gnome Shell 3.30.1 - ĐÂY LÀ GIẢI PHÁP ĐÚNG. Tất cả các giải pháp khác khởi động lại phiên và đưa người dùng ra màn hình đăng nhập, mất tất cả công việc của họ.
C.Rogers

3
SIGQUIT (3) không giết quá trình
Jack Wasey

Điều này dường như làm việc cho tôi. Trong khi đó tôi đã sử dụng gnome-shell --replace &trước đây. Nó hoạt động nhưng, tiếp tục chạy trong thiết bị đầu cuối. Vấn đề tôi gặp phải là với các video Youtube ở chế độ toàn màn hình bằng cách nào đó khiến Dash-to-Dock và bảng điều khiển bị đóng băng. github.com/micheleg/dash-to-dock/issues/ từ
Natetronn

5

Lệnh nên được gnome-shell --replace.


3
Kể từ phiên bản Gnome Shell 3.30.1 trên Ubuntu 18.10, giải pháp này không còn hoạt động nữa và sẽ đưa người dùng đến màn hình đăng nhập, mất tất cả công việc của họ. Giải pháp chính xác bây giờ là dòng lệnh: "killall -3 gnome-shell", hoặc ALT + f2 và r (nếu có thể).
C.Rogers

không hoạt động cho một phiên từ xa, vì vậy khi vỏ gnome bị đóng băng, điều này không hoạt động.
Jack Wasey

5

Trong trường hợp toàn bộ gnome-shellbị đóng băng, có một cách để khởi động lại nó từ thiết bị đầu cuối mà không cần khởi động lại toàn bộ cửa sổ X:

  • Ctrl+ Alt+ F2để chuyển sang thiết bị đầu cuối
  • đăng nhập bằng thông tin đăng nhập của bạn (tên người dùng và mật khẩu) và sau đó chạy:
  • DISPLAY=:0 gnome-shell -r &
  • đăng xuất exit
  • Alt+ F1để chuyển về giao diện đồ họa X Window.

1

Tôi đã đưa ra chức năng này để đăng xuất người dùng (xem ở phía dưới)

Nó giả định

  • bạn có quyền sudo
  • bạn có bash
  • người dùng có 1 phiên X đang chạy (mặc dù bạn có thể ban hành cùng một lệnh đăng xuất nhiều lần để thoát khỏi các phiên còn lại)

Bạn có thể cung cấp cho nó nhiều tên người dùng:

logout john jane mike elisa

Và bạn có thể cung cấp cho nó các tùy chọn bổ sung:

logout john --force

Vì vậy, tôi có chức năng trợ giúp sau:

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

Ghi chú:

  • Đây là một công cụ cùn và hoạt động bằng cách chỉ sao chép toàn bộ môi trường phiên. Điều này có thể được lựa chọn nhiều hơn.
  • Đôi khi đăng xuất dường như mất một lúc
  • Trong các trường hợp hiếm hoi, phiên tiếp tục được báo cáo cho đến khi ai đó truy cập vào vt nơi phiên chạy, nhưng không còn gì nữa)

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

Tôi đã xác định một bí danh: alias gnomeshellrestart='echo "gnome-shell --replace -d" $(w| grep "$USER"| awk "{print \$3}"|grep ":"|head -1)| at now'

Bạn có thể bắt đầu một thiết bị đầu cuối bằng cách nhấp chuột phải bằng chuột trên nền và gõ vào đó (tab alt cũng bị rối loạn), nếu không, hãy đăng nhập vào một tty với ví dụ ctrl-alt-F2 và chạy từ đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.