Làm cách nào để khởi động lại Gnome-shell, sau khi nó không phản hồi / đóng băng?


123

Đôi khi, gnome-shell của tôi đóng băng. Tôi có thể thấy (nghe) các quá trình nền hoạt động (phát nhạc), nhưng tôi không thể làm bất cứ điều gì trong gnome. Không Alt+ F2+ R.

Tôi có thể chuyển sang bảng điều khiển bằng cách sử dụng: Ctrl+ Alt+ F1, đăng nhập với cùng một người dùng và thực hiện:

gnome-shell --replace

và quay trở lại Ctrl+ F7, nhưng sau đó, tôi nhận được một hành vi kỳ lạ. Ví dụ tôi không thể chỉnh sửa các kết nối mạng. Tôi không thể đăng xuất là tốt. Cách thích hợp để khởi động lại gnome-shell là gì?


Có gnome-shell đóng băng trong khi sử dụng chức năng tìm kiếm trong gnome-shell overview, hoặc vào dịp đặc biệt nào, nếu bạn có thể nói?
v2r

1
Không, nó đóng băng sau khi đăng nhập (chủ yếu), thường là sau khi tháo gỡ.
jk_

2
Cho đến nay, tôi đã không tìm thấy một giải pháp làm việc. Cuối cùng, tôi kết thúc với cách giải quyết này .
jk_

Nếu bạn sử dụng bất kỳ shell-extensions từ: extensions.gnome.org tắt tất cả trong số họ và khởi động lại, để xem nếu một trong số họ gây ra những rắc rối. Tôi sử dụng phiên bản cũ hơn của gnome-shell và gặp nhiều vấn đề do nguyên nhân chính xác đó! (Có lẽ nó chỉ đơn giản như vậy?!)
v2r

1
Tôi đã cố gắng hủy kích hoạt tất cả chúng, vẫn gặp sự cố :(
jk_

Câu trả lời:


173

Cách dễ hơn chỉ là nhấn Alt+ F2, gõ rrồi Enter. Điều này sẽ làm việc rất lâu, vỏ có thể sử dụng được.

Bạn cũng có thể gửi SIGQUITđến gnome-shellquá trình sẽ chỉ chấm dứt trình bao:

killall -3 gnome-shell

Các phương pháp khác sử dụng các phương tiện phá hoại hơn, đóng tất cả các ứng dụng, điều này không nên.


3
+1 cho SIGHUPmẹo, tuy nhiên, sau đó sẽ không phải là lệnh chính xác killall -1 gnome-shell? Ít nhất theo man 7 signal, giá trị cho SIGHUPlà 1. Giá trị 3 tương ứng với SIGQUIT. Tôi đã gửi giá trị 1 đến Gnome Shell và nó đã được khởi động lại một cách sạch sẽ như mong đợi.
Chriki

@Chriki yeah, đó là sigquito, thông qua hầu hết các tín hiệu sẽ làm cho quá trình vỏ gnome kết thúc.
Braiam

Tôi đã thử điều này trên Fedora 25 và killall -3 gnome-shellkết quả là giết tất cả các ứng dụng cho tôi.
comfreak

6
Tôi ước chúng ta cũng có thể sử dụng một lệnh đầu cuối có hiệu ứng chính xác như Alt+F2r, tức là không làm trống toàn bộ màn hình ...
Sadi

Tôi gặp phải vấn đề gnome bị sập rất nhiều trên vm Ubuntu của tôi, tôi đã phải khởi động lại VM mỗi khi nó xảy ra. Có thể ssh in và sử dụng lệnh này giải quyết vấn đề đó, cảm ơn một triệu.
Nathan F.

32
  • Nếu bạn muốn yêu cầu "độc đáo" với gnome-shell để tự khởi động lại, thì bạn có thể gọi hàm khởi động lại bên trong qua dbus bằng lệnh sau (giả sử bạn có DBUS_SESSION_BUS_ADDRESSenv var được đặt thành giá trị chính xác và chạy như một người dùng):

    dbus-send --type=method_call --print-reply --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'global.reexec_self()'
    
  • Nếu bạn muốn chạy một cá thể mới, gnome-shell --replacenên làm tốt. Trên bàn điều khiển, bạn cần xác định các biến môi trường cần thiết như DISPLAY, DBUS*v.v. Tham khảo/proc/$gnome_shell_pid/environ

  • Nếu bạn muốn khởi động lại cái hiện có, thì killall -HUP gnome-shellsẽ làm nó. Nếu bạn làm điều đó quá thường xuyên, gnome-shell có thể vô hiệu hóa tất cả các tiện ích mở rộng, buộc bạn đăng xuất hoặc hành xử theo cách không thân thiện.

Tôi đã tạo một hàm shell để đặt DBUS_SESSION_BUS_ADDRESS từ môi trường quy trình gnome-shell (để bạn có thể logout otheruser1 otheruser2) hỏiubfox.com / a / 874504/1741
sehe

3
Có lỗi Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.Shell was not provided by any .service filesmà không có sudo và Failed to open connection to "session" message bus: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11với sudo.
Seanny123

7

Đây là một cách giải quyết khác nhau:

  1. Đăng nhập vào một thiết bị đầu cuối cục bộ bằng cách nhấn CTRL+ ALT+ F1.
  2. Chạy lệnh:

    sudo kill -HUP $(pidof gnome-shell)
    
  3. Quay trở lại giao diện đồ họa bằng cách nhấn CTRL+ ALT+ F7.

PS: Tôi đang sử dụng lightdm thay vì gdm3.


1
Đơn giản, và làm việc như một nét duyên dáng! (Ít nhất là đối với tôi)
Katai

6

Nếu bạn đã cài đặt gnome Ubuntu, mà bạn nên có, bạn có thể đang sử dụng trình quản lý hiển thị gnome. Trong trường hợp đó, bạn nên đổi sang TTY khác, như Ctrl + Alt + F4 và sau đó

sudo service gdm restart

Tôi cũng đã viết một bài báo về tình huống như vậy gần đây:

Giúp tôi với, máy tính để bàn Linux của tôi bị treo!

May mắn nhất!


6
hãy cẩn thận , tôi đã làm điều đó trên cùng một TTY và điều này giết chết phiên hiện tại của tôi ..
RousseauAlexandre

Điều này hoàn toàn làm hỏng phiên hiện tại: nó bắt đầu nhấp nháy và sau đó đến niết bàn .. phải khởi động lại.
Nik O'Lai

5

Vì bạn không hài lòng gnome-shell --replace, bạn có thể muốn thử khởi động lại trình quản lý hiển thị.

sudo service lightdm restart

Tôi nghĩ rằng nó sẽ giết các quá trình khác mà bạn đang chạy. Đồng thời tham khảo http://worldofgnome.org/how-to-restart-gnome-shell-when-freezes-if-ever/

Nếu bạn nghiêm túc với thứ gì đó khiến bạn đóng băng mọi lúc, hãy bật SysRq như được đề cập trong https://www.kernel.org/doc/Documentation/admin-guide/sysrq.rst , sau đó đưa ra <alt><sysrq/print_screen_key><k>để giết bất cứ thứ gì có trên đó màn.


3
Khởi động lại lighdm hoạt động, nhưng tôi muốn tránh nó, bởi vì tôi phải mở lại mọi thứ từ đầu. Đặc biệt là nếu tôi biết đó là vấn đề của Gnome-shell và khởi động lại thì nó gần như hoạt động.
jk_

Tôi không biết các phương pháp khác để chỉ giới thiệu vỏ gnome. Bạn đã thử liệu DISPLAY=:7 gnome-shell --replacelàm việc?
Jay Aurabind

1
Không, không, tôi sử dụng màn hình, khi whiển thị hiển thị khác với : 0 . Nếu tôi sử dụng màn hình sai, tôi gặp lỗi.
jk_

Xin lỗi, tôi không có lựa chọn. Bạn có thể nên hỏi trong danh sách gửi thư của người dùng / nhà phát triển gnome. Trước tiên hãy tìm hiểu lý do tại sao bạn có bất thường với alt-f2-rhoặc gnome-shell --replacekhi đó là cách được đề xuất của gnome.
Jay Aurabind

Tôi cũng vậy. Tôi thậm chí đã theo liên kết này để thiết lập nhiều biến ENV hơn, nhưng tôi vẫn không thể chỉnh sửa các kết nối mạng khi khởi động lại gnome-shell từ một thiết bị đầu cuối khác. Cuối cùng, tôi kết thúc với thủ thuật này
jk_

2

Đôi khi tôi có cùng một vấn đề như bạn mô tả, và giải pháp của tôi là:

Ctrl+ Alt+ F1, đăng nhập với cùng một người dùng và thực hiện:

sudo pkill -9 ^gnome-shell

Và quay lại với Ctrl+ Alt+F7

Nếu đây là cách thích hợp, tôi không biết. Đối với tôi nó hoạt động mọi lúc.


3
Điều này sẽ giết tất cả người dùng của gnome-shell, đây có thể không phải là điều bạn muốn làm trong kịch bản nhiều người dùng. Thông thường bạn chỉ phải tự giết mình (pkill -HUP gnome-shell)
Steeve McCauley

3
kill -9 là một chút phá hoại tôi nghĩ: robertwe.github.io/2015/03/19/why-you-shoudnt-use-kill--9
Robert

thật tuyệt khi nó hoạt động với tôi ...! bạn tiết kiệm trong ngày của tôi đánh giá cao.
NomanJaving

2

Khởi động lại X

  • Trước tiên hãy tìm trình quản lý hiển thị mà Ubuntu của bạn đang sử dụng bằng lệnh sau:

    cat /etc/X11/default-display-manager
    

    trong trường hợp của tôi đó là /usr/sbin/gdm3

    Từ bên trong X hoặc NGOÀI X

  • Đối với Phương pháp 1 đến 4, hãy tìm hiểu màn hình nào bạn đang sử dụng bằng cách sử dụng wlệnh.

    w
    

    câu trả lời có thể là ví dụ tty3, (phím "trở lại màn hình của tôi" của tôi (Ctrl) là Ctrl + Alt + F3

Phương pháp

  1. Ctrl + Alt + F1 để thoát và Ctrl + Alt + F3 để đưa một trở lại
  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. Một cách dễ dàng là chỉ cần nhấn Alt + F2 và nhập rrồi nhấn Enter. Điều này sẽ hoạt động rất lâu, vỏ không thể sử dụng được.

Phương pháp 5 được gỡ bỏ nguyên văn từ câu trả lời của korc và 6 từ câu trả lời của Braiam . Đạo văn không trái với quy tắc ở đây, nhưng nó chắc chắn không hay. Tất cả những gì bạn thực sự cần làm là chỉ ra rằng tác phẩm không phải là của riêng bạn bằng cách đặt nó trong dấu ngoặc kép và đưa ra sự ghi nhận bằng cách bao gồm một liên kết đến bài đăng nguồn và một liên kết đến trang hồ sơ của tác giả. Để biết thêm chi tiết, hãy xem bài đăng trên blog này: Yêu cầu ghi công
wjandrea

1
  1. Nhấn Ctrl + Alt + F2 để chuyển sang cửa sổ terminal. Đôi khi, điều này là không thể.

  2. Nhấn Alt + SysRq + R để lấy bàn phím.

  3. Nếu nhấn Ctrl + Alt + F2 trước khi thất bại, hãy thử lại ngay bây giờ.

  4. Nhấn Alt + SysRq + E để chấm dứt tất cả các quy trình.

  5. Nhấn Alt + SysRq + I để hủy tất cả các quy trình.

  6. Nhấn Alt + SysRq + S để đồng bộ hóa các đĩa của bạn.

  7. Đợi tin nhắn OK hoặc Xong. Nếu bạn không thấy tin nhắn, hãy nhìn vào đèn HDD của bạn để xem Sync có tạo ra sự khác biệt không.

  8. Nhấn Alt + SysRq + U để ngắt kết nối tất cả các ổ đĩa.

  9. Đợi tin nhắn OK hoặc Xong. Nếu bạn không thấy tin nhắn trong 15-30 giây, giả sử các đĩa không được kết nối (hoặc không thể kết nối được) và tiếp tục.

  10. Nhấn Alt + SysRq + B để khởi động lại.


0

kill -15 gnome-shellkhông làm việc cho tôi nhưng kill -9không. Tôi nghĩ rằng đó là bởi vì kill -9kích hoạt một segfault kích hoạt gnome-shell để tự khởi động lại, trong khi kill -15thì không.


2
kill -9không kích hoạt một segfault. Nó gửi SIGKILL, một tín hiệu không thể so sánh được mà hành động duy nhất là thoát ngay lập tức. Chỉ nên sử dụng khi ứng dụng không phản hồi với SIGTERM, tức là 15.
muru

pkill -11 gnome-shellsẽ kích hoạt một segfault, vì đó thực sự là tín hiệu 11. BTW, killcần ID quy trình, KHÔNG phải tên quy trình. Ý của bạn là pkillhay killall?
TSJNachos117
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.