Kiedy gnome-shell ulega awarii w systemie Linux Mint 12, zwykle pojawia się ponownie w ciągu kilku sekund. Kiedy nie „t”, wydaje się, że zabiera ze sobą demona kluczy, ponieważ po ponownym uruchomieniu z

while true; do DISPLAY=:0 gnome-shell --replace; done & 

prosi o hasło klucza za każdym razem, gdy uruchamiam polecenia takie jak git pull. Jak zrestartować demona pęku kluczy (jeśli na tym polega problem) podczas ponownego uruchamiania gnome-shell?

Odpowiedź

AKTUALIZACJA: Te instrukcje mogą być nieaktualne. W najnowszych systemach pojawiają się gniazda gnome-keyring przeniesione z losowego katalogu w ~/.cache/ do /run/user/<ID>/keyring/ (at najmniej na Debianie Jessie), więc proste ponowne uruchomienie powinno wystarczyć.

Jest to trochę trudne, ponieważ gnome-keyring-daemon ustawia unikalne parametry środowiska przed rozpoczęciem sesji i to środowisko jest używane do uzyskiwania dostępu do koryta demona a gniazdo. Środowisko jest kopiowane do każdej aplikacji, więc nie ma możliwości ponownego ustawienia wszystkich zmiennych środowiskowych sposób polegający na ręcznym ponownym uruchomieniu demona, dowiązaniu symbolicznym starego katalogu do nowego (więc stare środowisko nadal działa), a następnie uruchomieniu poszczególnych usług.

  1. Upewnij się, że nie ma gnome- keyring-daemon uruchomiony (to polecenie nie powinno zwracać numeru pid, jeśli trzeba go zabić)

    pgrep -f gnome-keyring-daemon 
  2. Wyczyść stary zestaw kluczy gniazda

    rm -rf ~/.cache/keyring-* 
  3. Uruchom proces demona – używamy setsid i przekierowujemy SDTIN, OUT & ERR, więc nie ma powiązania z naszą powłoką / tty. Spowoduje to utworzenie nowego katalogu z gniazdem kontrolnym w ~ / .cache /.

    setsid /usr/bin/gnome-keyring-daemon </dev/null >/dev/null 2>&1 
  4. Symlinuj nowy katalog gniazda do starego jeden (najlepiej zastąpić symbol wieloznaczny rzeczywistym katalogiem, ale ponieważ usunęliśmy je wszystkie wcześniej, powinien być tylko jeden):

    ln -s ~/.cache/keyring-* $GNOME_KEYRING_CONTROL 

    NB: Nie mam twojego problemu z powłoką gnome, ale jeśli nie masz tych zmiennych wyeksportowanych z miejsca, w którym zaczynasz powłokę gnome, wielu trzeba ręcznie przekazać następujące zmienne środowiskowe do gnome-shell: GPG_AGENT_INFO GNOME_KEYRING_CONTROL SSH_AUTH_SOCK. Powinieneś być w stanie uzyskać wartość ze ścieżki usuniętej w # 2 (jeśli masz wiele katalogów, musisz poszukać najnowszego).

  5. Uruchom drugiego gnoma- usługi kluczy (będą łączyć się z demonem za pomocą gniazda i włączać usługi na nim, jeśli do tej pory wszystko poszło dobrze):

    /usr/bin/gnome-keyring-daemon --start --components=pkcs11 /usr/bin/gnome-keyring-daemon --start --components=gpg /usr/bin/gnome-keyring-daemon --start --components=ssh 

    Te ostatnie polecenia wypisują zmienne środowiskowe … możesz je zignorować, po prostu upewnij się, że nie ma błędów połączenia gniazd.

Ponadto, jeśli chcesz wyczyścić stare gniazda, możesz dodać @reboot wpis cron, który przeprowadza porządki:

find ~/.cache/ -maxdepth 1 -type l -name "keyring-*" -delete 

Komentarze

  • W CentOS 7.3 / gnome-keyring 3.14 nie było nic związanego z plikiem kluczy w ~/.cache/, więc te kroki można było pominąć; po prostu zabijanie i setsid ponowne uruchomienie było wystarczające. Następnie ssh logowanie poprosiło mnie o prawidłowe podanie hasła i zapisanie w pamięci podręcznej zgodnie z oczekiwaniami.
  • Rzeczywiście ' nie mam więcej plików kluczy od lipca 2015, co wydaje się odpowiadać mojej aktualizacji z Debiana 7 / Wheezy do 8 / Jessie. Już wcześniej przestałem polegać na demonie breloków, więc nie ' nawet nie wiem, jak ' ma teraz działać.

Odpowiedź

Powinno to spowodować czysty restart demona:

gnome-keyring-daemon -r -d 

Źródło: ArchLinux

Komentarze

  • Działał idealnie na Mint 18 (Sarah). Dzięki!
  • Pracowałem w systemie Ubuntu 18.04, dzięki!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *