Я хотел бы реализовать сочетание клавиш для перезапуска gnome-shell при каждом его сбое ( некоторые ошибки в настоящее время еще не исправлены). Для этого мне понадобится командная строка для перезапуска оболочки.
Команда Alt kbd> + F2 kbd> и restart
не будет работать при сбое оболочки, поскольку приглашение реализовано в оболочки.
Следовательно, как перезапустить gnome-shell из командной строки?
Самый простой способ - Alt kbd> + F2 kbd> и набрать r
, затем ↵ kbd>.
Команда должна быть просто gnome-shell --replace
.
В случае, если целое gnome-shell
было заморожено существует путь, как перезапустить его от терминала, не перезапуская целое X-окно:
DISPLAY=:0 gnome-shell -r &
exit
и Я придумал эту функцию, чтобы выйти из системы пользователи (см. внизу),
Это принимает
Можно дать ему несколько имен пользователей:
logout john jane mike elisa
И можно дать ему дополнительные опции:
logout john --force
Так, я сделал, чтобы следующий помощник функционировал:
function forcelogout() {
logout "$@" --no-prompt --force
}
Примечания:
function logout() {
local USERNAME
export USERNAMES=( )
while [ -n "$1" ]; do case "$1" in
-* ) break ;;
*) USERNAMES+=( "$1" ); shift ;;
esac; done
for USERNAME in "${USERNAMES[@]}"; do
local SESSION_PID=$(pgrep -fu "$USERNAME" gnome-session|head -1)
if [ -n "$SESSION_PID" ]; then
(
sudo -u "$USERNAME" cat "/proc/$SESSION_PID/environ" | xargs -0 -n 1 echo export
echo "gnome-session-quit --logout $@"
) | sudo -u "$USERNAME" sh -;
fi
done
}
Вы также можете сделать killall -3 gnome-shell
.
Команда для замены оболочки гнома будет gnome-shell --replace
.
Со страницы руководства gnome-shell
:
--replace Replace the running window manager
Я определил псевдоним: alias gnomeshellrestart='echo "gnome-shell --replace -d" $(w| grep "$USER"| awk "{print \$3}"|grep ":"|head -1)| at now'
Вы можете запустить терминал, щелкнув правой кнопкой мыши по фону и введя его там (тогда alt-tab тоже dysfct), если нет , войдите в систему с помощью, например, Ctrl-Alt-F2 и бежать оттуда.