Как перезапустить сеанс Unity с терминала?

48

Команда для перезапуска Gnome2:

sudo /etc/init.d/gdm restart

Что является эквивалентом для Unity?

rjbgbo
источник

Ответы:

34

Upstart путь

sudo service lightdm restartдля более новых версий, использующих lightdm

или sudo service gdm restartдля более старых версий, использующих GDM .

Обновление: Другой вариант, который не использует терминал, но использует комбинацию клавиш, можно найти в разделе Как настроить комбинацию клавиш для отключения X-сервера?

Эгиль
источник
1
Я нашел этот очень практичный и функциональный способ, спасибо.
rjbgbo
1
gdmПохоже, что сервис недоступен в Ubuntu 14.04.
Томас Арильдсен
nohup compiz --display :0 --replace &кажется, перезапускает единство, не теряя окна текущего сеанса. См. Askubuntu.com/a/38597/35666
Бренден,
97

Команда unityможет быть использована для возобновления единства. Он перезапускает оконный менеджер, поэтому ваши открытые программы останутся без изменений, и вы не выйдете из системы.

Если вы запускаете команду из приложения терминала, вы должны добавить ее, & disownчтобы отсоединить от терминала. Если вы этого не сделаете, то программа Unity станет дочерним процессом приложения терминала, поэтому при закрытии терминала Unity также закроется.

Также может быть целесообразно добавить &> /dev/null(до бита disown), чтобы вывод текста и ошибок не загромождал ваш терминал.

Итак, команда:

unity &> /dev/null & disown

Если вы не можете открыть приложение терминала из-за того, что рабочий стол крайне не отвечает (или по какой-либо другой причине), вы можете открыть чисто текстовый терминал, нажав alt-ctrl-F1на него F6.

Там вы получите текстовый терминал, вы должны сначала войти.

Затем вы можете запустить команду выше, затем нажать alt-ctrl-F7или, alt-ctrl-F8чтобы вернуться к графическому рабочему столу.

Это имеет тенденцию устранять проблемы с зависанием.

В качестве примечания: поскольку Unity является плагином compiz, вы можете перезапустить unity, перезапустив compiz с помощью команды:

compiz --replace

Если вы запустите его из alt-ctrl-F1терминала, вам понадобится --displayпараметр

compiz --display :0 --replace

Вам все равно нужно будет добавить & disown

Hasen
источник
Благодарю. Я думаю, что этот лучше, чем принятый, потому что он только перезапускает Unity, а не весь сервер дисплея. Спасибо!
kroq-gar78
1
Вау! Я использую Ubuntu в течение 4 лет (возможно, не так много, но все же ...) и не знал о существовании & disown. Спасибо!
FRD
И еще один момент для Linux над Windows. Перезапустите сбойный интерфейс, ничего не потеряв: Проверьте!
Кристоф Гриммер-Дитрих
Просто незначительная вещь. Если вы используете какую-либо оболочку, кроме bash (я использую fish), используйте вместо этого nohup, если откажетесь. Нохуп идет в начале команды, как это:nohup compiz --display :0 --replace &
Даниэль Родригес
Если вы используете unity-2d, вы можете сделатьunity-2d-shell &> /dev/null & disown
mivk
12

Вам не нужно открывать TTY. В большинстве случаев Alt-F2 все еще работает. Просто введите «единство». Вот и все. Нет и отречься нужно.

Kendor
источник
7

В Ubuntu 13.04 вы можете использовать следующее:

sudo service lightdm restart
Душевный человек
источник
3

В терминале запустите nohup compiz --replace. Команда nohup гарантирует, что compiz не будет закрыт, когда вы закроете терминал.

Джо-Эрленд Шинстад
источник
2

За командой перезапуска GDM sudo stop gdmследует команда sudo start gdmtty.

Если вы пытаетесь перезапустить Unity, просто запустите unity(но помните, что вам нужно сделать это из диалогового окна Run.

RolandiXor
источник
0

Мне нравится менять атрибут размера шрифта GNOME в зависимости от монитора. Я закрывал программы напрямую, чтобы сохранить положение окна. Я поместил это в скрипт, который, вероятно, делает то же самое:

    nautilus -q && sleep 2 && bgcmd nautilus -n
    pkill unity-panel
    pkill unity-window
    sleep 1
    unity-window-decorator &> /dev/null & disown
Тодд Партридж 'Gen2ly'
источник