How do I restart a Unity session from the terminal?
The command unity
can be used to restart unity. It restarts the window manager, so your open programs will stay intact and you will not be logged out.
If you run the command from a terminal app, you should add & disown
to detach it from the terminal. If you don't, then the unity program will become a child process of the terminal app such that when you close the terminal, unity will also close.
It might also be worthwhile to add &> /dev/null
(before the disown bit) so that text and error output does not clutter your terminal.
So, the command is:
unity &> /dev/null & disown
If you can't open the terminal application due to the desktop being extremely unresponsive (or any other reason), you can open a purely text-based terminal by hitting alt-ctrl-F1
through F6
.
There you will get a text terminal, you have to login first.
Then you can run the command above, then hit alt-ctrl-F7
or alt-ctrl-F8
to come back to the graphical desktop.
This tends to fix "hanging" problems.
As a side note: since Unity is a compiz plugin, you can restart unity by restarting compiz using the command:
compiz --replace
If you run it from the alt-ctrl-F1
terminal, you will need a --display
parameter
compiz --display :0 --replace
You'll still need to add & disown
The Upstart way is
sudo service lightdm restart
for newer versions using lightdm
or sudo service gdm restart
for older versions using gdm.
Update: Another option, which isn't using the terminal but using a key combination, can be found at How to set keyboard combination to kill the X server?
You don't need to open a tty. In most cases Alt-F2 still works. Just enter "unity". That's it. No & disown needed.