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.
-
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
-
Vymazat starý klíčenku zásuvky
rm -rf ~/.cache/keyring-*
-
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
-
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ší). -
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
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!
~/.cache/
, takže tyto kroky bylo možné přeskočit; jen zabití asetsid
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í.