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.

Tags:

Restart

Unity