Když systém gnome-shell spadne v systému Linux Mint 12, obvykle se znovu objeví během několika sekund. Když to neudělá, zdá se, že to vezme démona klíčenky s sebou, protože po restartu s

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

si při každém spuštění vyžádá klíčové heslo příkazy jako git pull. Jak restartuji démona klíčenky (pokud v tom právě je problém) při restartování gnome-shell?

Odpověď

UPDATE: Tyto pokyny mohou být zastaralé. Na posledních systémech se zdá, že zásuvky gnome-keyring byly přesunuty z náhodného adresáře v ~/.cache/ do /run/user/<ID>/keyring/ (na nejméně na Debianu Jessie), takže by měl stačit jednoduchý restart.

Je to trochu složité, protože gnome-keyring-daemon nastavuje jedinečné parametry prostředí před zahájením relace a toto prostředí se používá pro přístup k démonickému žlabu soket. Prostředí je zkopírováno do každé aplikace, takže neexistuje způsob, jak znovu nastavit všechny proměnné prostředí způsob, který zahrnuje ruční restartování démona, propojení starého adresáře s novým (takže staré prostředí stále funguje) a následné spuštění jednotlivých služeb.

  1. Ujistěte se, že neexistují žádné gnome- běžící klíčenka-daemon (tento příkaz by neměl vracet žádný pid, pokud ano, musíte ji zabít)

    pgrep -f gnome-keyring-daemon 
  2. Vymazat starý klíčenku zásuvky

    rm -rf ~/.cache/keyring-* 
  3. Spustit proces démona – použijeme setid a přesměrujeme SDTIN, OUT & ERR, takže neexistuje žádný vztah k našemu shellu / tty. Tím se vytvoří nový adresář s ovládacím soketem v ~ / .cache /.

    setsid /usr/bin/gnome-keyring-daemon </dev/null >/dev/null 2>&1 
  4. Symlink nového adresáře soketu do starého jeden (v ideálním případě nahraďte zástupný znak skutečným adresářem, ale protože jsme je dříve odstranili, měl by existovat pouze jeden):

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

    NB: Nemám váš problém s gnome-shell, ale pokud nemáte tyto proměnné exportované z místa, kde začínáte gnome-shell, máte mnoho musíte ručně předat následující proměnné prostředí do gnome-shell: GPG_AGENT_INFO GNOME_KEYRING_CONTROL SSH_AUTH_SOCK. Měli byste být schopni odvodit hodnotu z cesty odstraněné v # 2 (pokud máte více adresářů, musíte vyhledat nejnovější).

  5. Spustit další gnome- služby klíčenek (připojí se k démonovi pomocí soketu a povolí služby na něm, pokud zatím vše proběhlo v pořádku):

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

    Tyto poslední příkazy se vytisknou proměnné prostředí … můžete je ignorovat, jen se ujistěte, že nedochází k žádným chybám připojení soketu.

Také pokud chcete vyčistit staré sokety, můžete přidat @reboot položka cron, která provede vyčištění:

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

Komentáře

  • Na CentOS 7.3 / gnome-keyring 3.14 nebylo nic související s klíčenkou v ~/.cache/, takže tyto kroky bylo možné přeskočit; jen zabití a setsid opětovné spuštění stačilo. Další ssh přihlášení mě požádalo o správné heslo a do mezipaměti podle očekávání.
  • Opravdu nemám ' žádné více souborů klíčenek od července 2015, což, jak se zdá, odpovídá mému upgradu z Debian 7 / Wheezy na 8 / Jessie. Už předtím jsem se přestal spoléhat na démona klíčenek, takže ' ani nevím, jak by to ' teď mělo fungovat.

Odpověď

To by mělo provést čistý restart démona:

gnome-keyring-daemon -r -d 

Zdroj: ArchLinux

Komentáře

  • Perfektně fungovalo na mincovně 18 (Sarah). Děkujeme!
  • Fungovalo to v ubuntu 18.04, díky!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *