Есть ли точная команда для перезапуска оболочки GNOME в Ubuntu 20.04, соответствующая Alt + F2 + 'r' + Enter?

Есть ли способ перезапустить оболочку GNOME, кроме как с помощью Alt + F2 , R + Введите ?

Что касается вопроса, я рассмотрел Различие между `gnome-shell --replace` и r в Alt + F2 , но я не получил то, что искал.

Я ищу команду, которая точно выполняет то же самое, что и Alt + F2 , r + Enter .

Обратите внимание, что я не хочу выполнять команду gnome-shell - replace ...

Я проверил обе вещи Alt + F2 , r Введите и gnome-shell --replace ...
Я обнаружил, что есть большая разница ...

2
задан 27 August 2019 в 17:06

3 ответа

Команда для этого (Протестировано только в Ubuntu 20.04)

gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval 'Meta.restart(_("Restarting…"))'

enter image description here

3
ответ дан 14 July 2020 в 06:57

Я также хотел программно перезапустить оболочку gnome, потому что похоже, в Ubuntu 19.10 есть какая-то утечка памяти. gnome-shell начинает потреблять чуть более 200 МБ, но после нескольких часов использования может достигать более 900 МБ.

alt+f2,r,enter изящно решает проблему.Появляется небольшое сообщение о перезапуске. Изменение практически незаметно, все окна сохраняют свое положение, а работающие программы сохраняют свое состояние. При перезагрузке мерцает только фон рабочего стола.

При использовании gnome-shell --replace некоторые программы уничтожаются с потерей всей работы в них, уцелевшие окна могут менять свое положение, а некоторые части экрана кажутся перерисованными. Я также пробовал killall gnome-shell с аналогичными результатами.

К сожалению, я не думаю, что есть способ получить доступ к этой функции из командной строки, поскольку она встроена глубоко в код gnome-shell для RunDialog GObject:

gnome-shell > js > ui > runDialog.js [37]

this._internalCommands = {
    'lg': () => Main.createLookingGlass().open(),
    'r': this._restart.bind(this),
    ...
1
ответ дан 13 March 2020 в 03:53

Как Диего Ф. Родригес В. упомянул, нет никакого способа получить к нему доступ с терминала. Тем не менее,

killall -3 gnome-shell

очень близко и поддерживает ваш активный сеанс в такт. Он отправляет сигнал QUIT (SIGQUIT), и, поскольку gnome-shell настроен на автоматический запуск всякий раз, когда X активен, технически он делает то же самое.

kill -SIGQUIT PID
kill -3 PID
kill -QUIT PID

тоже можно сделать, но для этого требуется PID (идентификатор процесса) в качестве аргумента, который можно найти через

ps x | grep "gnome-shell"
0
ответ дан 17 August 2020 в 19:52

Другие вопросы по тегам:

Похожие вопросы: