Restarting GNOME shell when it has frozen, without killing applications

In summary, the conversation discusses the stability of Ubuntu compared to Windows, as well as troubleshooting methods for unresponsive GUI in GNOME. The question arises whether it is possible to restart GNOME from a TTY command-line without killing running applications. The conversation also mentions the benefits of rebooting and a personal testing method that seems to work.
  • #1
Wrichik Basu
Science Advisor
Insights Author
Gold Member
2,138
2,713
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?
 
Computer science news on Phys.org
  • #2
It’s hard to know what will work in this case because the fault may not be in the gnome shell. The best you can do is be proactive about saving state periodically, rebooting when you’re done for the day, and backing up as needed.

one article I read talked about the benefits of rebooting that go beyond just getting things to work again.

https://www.pandasecurity.com/en/mediacenter/tips/turn-computer-off/
 
  • #3
jedishrfu said:
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:

20220104_152926-1.jpg


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.
 
  • Like
Likes jedishrfu

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

How do I restart GNOME shell without closing my open applications?

To restart GNOME shell without closing open applications, press Alt + F2 and type r into the command field. Press Enter and the shell will restart without affecting your open applications.

Can I restart GNOME shell from the command line?

Yes, you can restart GNOME shell from the command line by entering the command gnome-shell --replace. This will restart the shell without closing any open applications.

What if my keyboard shortcuts aren't working when GNOME shell freezes?

If your keyboard shortcuts are not working when GNOME shell freezes, you can open the system monitor by pressing Ctrl + Alt + Delete and select GNOME Shell from the list of running processes. Click End Process and then use the Alt + F2 method to restart the shell.

Is there a way to prevent GNOME shell from freezing in the first place?

Yes, you can try updating your graphics drivers or disabling any problematic extensions. You can also try using a different desktop environment to see if the freezing persists.

Will restarting GNOME shell cause me to lose any unsaved work?

No, restarting GNOME shell should not cause you to lose any unsaved work. However, it is always a good idea to save your work regularly to prevent any potential data loss.

Back
Top