Jak możesz się wylogować przez terminal?


248

Czy istnieje polecenie terminalu, które wyloguje Cię z bieżącej sesji pulpitu i zabierze Cię z powrotem do ekranu logowania?

Odpowiedzi:


197

11.10 i nowsze

gnome-session-quit

11.04 i poprzednie wersje

dbus-send --session --type=method_call --print-reply --dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.Logout uint32:1

(poprzez alternatywny tekstDoR , zobacz jego odpowiedź na „Uruchom ponownie bez uprawnień sudoer?”, aby uzyskać więcej dobroci dbus!)

lub alternatywnie możesz użyć

gnome-session-save --force-logout

--force-logoutw przeciwieństwie do po prostu --logoutnie poprosi użytkownika o postępowanie z niezapisanymi dokumentami i tak dalej.

czy to najłatwiejszy sposób? nie ma jednego prostego polecenia, takiego jak sudo wylogowanie? Nigdy tego nie zapamiętam.

Tak, istnieje polecenie o nazwie wylogowanie, ale dotyczy ono terminala. gnome-session-save to program, który faktycznie zamyka program gnome-session, który można oczywiście zabić, ale nie kwalifikowałby się jako wylogowanie. :-)

Zauważ też, że te polecenia nie wymagają rootowania.

Zawsze możesz dodać alias do swojego systemu, jeśli chcesz mieć krótsze polecenie.

Otwórz ~/.bash_aliasesza pomocą edytora tekstu lub utwórz go, jeśli go nie ma, i dodaj do niego coś takiego:

alias logout-gnome="gnome-session-save --force-logout"

(.bashrc to skrypt uruchamiany za każdym razem, gdy uruchamiany jest nowy terminal wirtualny , powinieneś skonfigurować tam wszystkie swoje stałe aliasy, zobacz także: Jak utworzyć stały „alias”? )


1
czy to najłatwiejszy sposób? nie ma jednego prostego polecenia, takiego jak sudo logout? Nigdy tego nie zapamiętam.
TheXed

2
Cóż, zawsze jest Ctrl-Alt-Backspace (jeśli go włączysz), ale znowu to zabija sesję, a nie wylogowuje się z niej.
koanhead,

4
Czy możesz zaktualizować swoją odpowiedź, mówiąc, że „gnome-session-save” zostało przemianowane na „gnome-session-quit” na 11.10 +
Mac

1
Możesz chcieć dodać DISPLAY =: 0.0 lub podobny, próbując wylogować się z sesji z ssh lub innego terminala.
patrikf

3
Wydaje mi się, że „--force-logout” nie działa, ponieważ daje następujący błąd: OSTRZEŻENIE **: Nie można uruchomić: Nieznana opcja --force-logout. Po przekopaniu się man gnome-session-quitdoszedłem do wniosku, że „--force” i „--logout” mają w rzeczywistości być różnymi argumentami. Dlatego „--force --logout” (dwa minusy śpiewa przed „force” i „logout”, z odstępem pomiędzy) byłoby lepsze, ponieważ nie będziesz mieć błędów. Przynajmniej tak jest w przypadku Ubuntu 13.04 i Linux Mint 15. IDK o innych / starszych wersjach obu dystrybucji.
TSJNachos117

76

Zainstalowałem komputer stacjonarny i żadne z menu nie działało, nawet klawisze funkcyjne nie działały. Udało mi się zdobyć Xterm poprzez przeglądanie za pomocą menedżera plików.

Jedyne, co zadziałało, to:

sudo pkill -u username

2
Zrobiłem też dla niego alias alias ulogout="sudo pkill -KILL -u $1". Może się przydać komuś. Zastosowanie:ulogout user_name
Eugene

1
@Eugene Co powiesz na alias logout="sudo pkill -u ${USER}"?
Georgi-it

To świetne rozwiązanie dla maszyn wirtualnych jak w Virtualbox.
Phil Lawlor

1
Czy jest powód, dla którego potrzebujesz sudo? Myślę też, że różni się to od wylogowania, ponieważ zabije wszystkie twoje procesy (na przykład, jeśli masz inną zdalną sesję, zostanie również zabita). Nie jestem też pewien, czy to koniecznie zabije wszystkie twoje procesy (mogę sobie wyobrazić, że może zabić się samo?) Czy wiesz, czy to możliwe?
capybaralet

W przypadku partnera użyj mate-session-save --force-logout. Zobacz tę odpowiedź .
Jérôme,

32

11.10 i nowsze

Oto moje osobiste rozwiązanie!

W terminalu uruchom:

gedit ~/.bash_aliases

I dodaj:

alias log-out="gnome-session-quit"

do pliku! Teraz wystarczy uruchomić wylogowanie!



11

W przypadku sesji gnome gnome-session-quitdziała dobrze. Domyślnie prosi o potwierdzenie, a następnie wylogowuje (tzn. --logoutArgument jest przyjmowany, chyba że zostanie to nadpisane --power-offjawnie). Możesz także powiedzieć komendie, aby nie monitowała o potwierdzenie przy wylogowaniu:

--no-prompt
      End the session without user interaction. This only works with --logout.

gnome-session-quit jest nadal ważny w 12.04.

Ponieważ OP nie określił menedżera okien / pulpitu i zamknięcie sesji gnome może nie działać ze wszystkimi możliwościami, oto ogólny sposób na X-Windows, aby powrócić do ekranu logowania lub selektora, z którego korzystałem kilka razy kilka ostatnich wydań:

Z terminala (wywoływanego z różnymi klawiszami Alt-F2 + xterm lub Ctrl-T lub Crt-Alt-F1 lub klikając prawym przyciskiem myszy pulpit w Nautilus i używając skrótu „otwórz w terminalu” itp. ) rodzaj

sudo pkill X

W większości przypadków jest to przesada. Zwykle używam go, gdy mam zawieszony proces lub gdy muszę się szybko wylogować. Kiedy to zrobiłem, Ubuntu uprzejmie przywrócił mnie do ekranu logowania, ponownie uruchamiając X-Windows.

Nie korzystałem jeszcze z power-offfunkcji gnome-session-quit, jak zwykle używam shutdown -P nowdo tego celu.


9

Na Xubuntu (lub za każdym razem, gdy używasz sesji Xfce), możesz wylogować się za pomocą terminala, używając

xfce4-session-logout --logout

Musisz określić --logoutlub wyświetli się ekran potwierdzenia wylogowania. Działa to niezależnie od tego, czy podczas logowania wybrano opcję „sesja Xubuntu” czy „sesja Xfce” Lightdm, ponieważ sesją nadal zarządza menedżer sesji Xfce.

Ponadto wyloguje Cię również inna opcja:

xfce4-session-logout --fast  

Jeśli to polecenie zostanie wydane, sesja nie zostanie zapisana, więc zwykle najlepiej jest użyć xfce4-session-logout --logout.

Możliwość wylogowania się przy użyciu terminala będzie bardzo przydatna, podobnie jak inne opcje, takie jak zawieszanie, które są dostępne za pomocą xfce4-session-logout.

Aby uzyskać więcej informacji, zobacz man xfce4-session-logoutlub strony internetowe Ubuntu online .


Potwierdzono, że dotyczy to również wszystkich smaków Ubuntu Studio.
coś

9

Możesz użyć poniższego polecenia:

sudo service lightdm restart

2
To ciężko zabija wszystkie uruchomione sesje X dla wszystkich użytkowników.
sehe

na ~/.bash_aliasespiśmiealias logmeout="service lightdm restart"
noobninja


6

lubuntu 12.10 LXDE działający na netbooku Samsung (procesor: 1,66 GHZ Intel Atom; RAM: 2 GB)

Poniższe dwa polecenia natychmiast mnie wylogowały:

sudo pkill -u username
sudo service lightdm restart

to jest dla mnie poprawna odpowiedź!


3

Jeśli nie chcesz zabijać sesji, możesz wrócić do ekranu logowania, używając:

dm-tool switch-to-greeter

Jeśli wybierzesz użytkownika i wprowadzisz hasło, sesja zostanie wznowiona, więc nie będzie to pełne wylogowanie.


2

Zdefiniuj funkcję, dodając następujący wiersz do pliku .bashrc, a następnie uruchom ją, wpisując wylogowanie w wierszu poleceń powłoki.

  logoff() { gnome-session-quit --logout --no-prompt ; } # Log Out

2
Czy możesz dodać więcej informacji na temat tego, jak faktycznie z tego korzystać? Teraz jest to trochę niejasne. Dzięki!
Seth

dodaj wiersz do .bashrc, po prostu wpisz wyloguj w wierszu polecenia.
vanvliet.eric

Powinieneś edytować te informacje w swojej odpowiedzi;)
Seth


0

Istnieje sposób, który zadziała, niezależnie od tego, czy korzystasz z X, czy z TTY. Proszę bardzo:

  • Jeśli użyjesz lightdm

    sudo service lightdm restart
    
  • jeśli używasz gdmlub w Ubuntu GNOME

    sudo service gdm restart
    
  • Jeśli używasz kdmlub w Kubuntu

    sudo service kdm restart
    

Minusem tego polecenia jest to, że poprosi o podanie hasła.


0

Aktualizacja 2019

Inne odpowiedzi nie działały dla mnie. W Ubuntu 18 (LTS) łatwo jest wpisać:

exit

Nastąpi powrót do ekranu logowania.


-1

Znalazłem to przypadkowo.

luvpreet@DHARI-Inspiron-3542:~/go/bin$ who -uH
NAME     LINE         TIME             IDLE          PID COMMENT
luvpreet tty7         2017-12-27 17:33  old        27458 (:0)

Tutaj otrzymasz identyfikator procesu bieżącej sesji.

Tak łatwo. Zabij to

luvpreet@DHARI-Inspiron-3542:~$ kill 27458

Proszę bardzo.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.