Restarting GNOME shell when it has frozen, without killing applications

  • #1

Wrichik Basu

Science Advisor
Insights Author
Gold Member
2022 Award
Ubuntu has given me a far more stable working system compared to Windows and its buggy updates. But, once in a while, I do find GNOME becoming slow or even crashing. If I find that the GUI is becoming unresponsive, I promptly restart GNOME using Alt + F2rEnter This does the job most of the time, and GNOME works properly again.

But sometimes, the GUI becomes unresponsive such that the above does not work. The only option I have got is to use Alt + SysRq + REISUB. But this will reboot the system, and I will have to re-open all applications and lose unsaved work, if any.

Note that even when the shell is frozen, I can still go to a TTY using Ctrl + Alt + Fn.

Given that Linux has given its users the freedom to use different desktop environments, I guess that the underlying OS is not tightly "tied" with the desktop GUI, when compared to Windows. This rouses my question: is it possible to restart GNOME from a TTY command-line, without killing the running applications?

Upon searching the net, I found this question on AskUbuntu. The most upvoted answer states one should use killall -3 gnome-shell. Some comments say this works. I haven't tried it yet, but I am a bit sceptical: -3 corresponds to SIGQUIT, which, according to this, is the harshest of ignorable kill signals, and the process receiving the signal is expected to terminate itself as soon as possible without saving its state. So, the process is not expected to restart itself. The first comment under the above answer on AskUbuntu says that -3 should be replaced by -1 (SIGHUP), but that too is a kill signal and not a restart signal.

There are other answers to the question on AskUbuntu, and according to the comments, most don't (or occasionally) work.

Is there any other way that is known to work, and will not kill the running applications but restart GNOME shell?

Answers and Replies

  • #3
rebooting when you’re done for the day
That's what I don't like to do. But Ubuntu does perform much better compared to Windows when I go without rebooting. My highest streak was 38 days, after which I had to shut down the laptop as I was boarding an aircraft.
  • #4
I did some testing, and this is what works (at least for me, Ubuntu 20.04):
  1. Went to TTY3 by pressing Ctrl + Alt + F3
  2. Logged in as current user.
  3. Executed sudo killall -1 gnome-shell
  4. Return to GNOME by pressing Ctrl + Alt + F2
How I knew it worked:
  • None of the applications that were open, were closed. Unsaved changes still existed.
  • I noted down the process ID of gnome-shell before and after the above steps. It had changed.
Note that it might take some time for GNOME-shell to restart. It seems that it is restarted by the system itself. To check whether it was restarted, you can check the PID of gnome-shell before and after killing it:


The pink arrows show the PID of GNOME before killing it. The kill command is highlighted by the red arrow. As indicated by the green arrows, just after killing, the PID is not returning anything, as GNOME had not started yet. Once a PID is returned (yellow arrows), it is safe to return to the GUI by pressing Ctrl + Alt + F2.

Suggested for: Restarting GNOME shell when it has frozen, without killing applications