Amikor a gnome-shell
összeomlik a Linux Mint 12 rendszeren, általában néhány másodpercen belül újra felmerül. Ha nem “t”, akkor úgy tűnik, hogy magával viszi a kulcstartó démont, mert a
while true; do DISPLAY=:0 gnome-shell --replace; done &
alkalmazással történő újraindítás után minden alkalommal, amikor futtatom, kéri a kulcs jelszavát olyan parancsok, mint a git pull
. Hogyan indíthatom újra a kulcstartó démont (ha itt van a probléma), amikor újraindítom a gnome-shell
?
Válasz
UPDATE: Lehetséges, hogy ezek az utasítások elavultak. Úgy tűnik, hogy a legújabb rendszerekben a gnome-kulcstartó aljzatok véletlenszerű könyvtárat alkotnak a ~/.cache/
fájlban /run/user/<ID>/keyring/
( legkevesebb a Debian Jessie-n), ezért egy egyszerű újraindításnak elegendőnek kell lennie.
Kicsit bonyolult, mivel a gnome-keyring-daemon egyedi környezetparamétereket állít be a munkamenet megkezdése előtt, és ez a környezet használható a démon vályúhoz socket. A környezet minden alkalmazásba átmásolódik, így nincs mód az összes környezeti változó újbóli beállítására. mód, amely magában foglalja a démon manuális újraindítását, a régi dir és az új összekapcsolását (így a régi környezet továbbra is működik), majd az egyes szolgáltatások elindítását.
-
Győződjön meg arról, hogy nincsenek gnome- kulcstartó-démon fut (ennek a parancsnak nem kell adnia a pid-t, ha meg kell ölnie)
pgrep -f gnome-keyring-daemon
-
Régi kulcstartó törlése socket
rm -rf ~/.cache/keyring-*
-
Indítsa el a démon folyamatát – a setidet és az SDTIN átirányítását használjuk, OUT & ERR, így nincs kapcsolat a shell / tty-vel. Ez létrehoz egy új könyvtárat a vezérlő socket-kel a ~ / .cache / fájlban.
setsid /usr/bin/gnome-keyring-daemon </dev/null >/dev/null 2>&1
-
Szinkronizálja az új socket könyvtárat a régivel. egyet (ideális esetben cserélje ki a helyettesítő karaktert a tényleges könyvtárra, de mivel korábban eltávolítottuk őket, csak egynek kell lennie):
ln -s ~/.cache/keyring-* $GNOME_KEYRING_CONTROL
Megjegyzés: Nincs a gnome-shell problémád, de ha ezeket a változókat nem exportálod onnan, ahonnan elindítottad a gnome-shell-t, akkor sokan manuálisan kell átadnia a következő környezeti változókat a gnome-shellnek:
GPG_AGENT_INFO GNOME_KEYRING_CONTROL SSH_AUTH_SOCK
. Képesnek kell lenned levezetni az értéket a # 2 törölt útvonalról (ha több könyvtárad van, akkor a legfrissebbet kell keresned). -
Indítsd el a másik gnome- kulcstartó szolgáltatások (csatlakoznak a démonhoz a socket segítségével, és engedélyezik a rajta lévő szolgáltatásokat, ha eddig minden rendben volt):
/usr/bin/gnome-keyring-daemon --start --components=pkcs11 /usr/bin/gnome-keyring-daemon --start --components=gpg /usr/bin/gnome-keyring-daemon --start --components=ssh
Ezek az utolsó parancsok kinyomtatásra kerülnek környezeti változók … figyelmen kívül hagyhatja őket, csak győződjön meg arról, hogy nincsenek socket csatlakozási hibák.
Ha régi socketeket akar megtisztítani, hozzáadhat egy @reboot
cron bejegyzés, amely tisztítást végez:
find ~/.cache/ -maxdepth 1 -type l -name "keyring-*" -delete
Megjegyzések
Válasz
Ennek a démon tiszta újraindítását kell végrehajtania:
gnome-keyring-daemon -r -d
Forrás: ArchLinux
Megjegyzések
- Tökéletesen működött a Mint 18-on (Sarah). Köszönöm!
- Az ubuntu 18.04-ben működött, köszönöm!
~/.cache/
fájlban, így ezeket a lépéseket ki lehetett hagyni; csak ölni és asetsid
újraindítás elegendő volt. A következőssh
bejelentkezéshez a jelszavamat megfelelően kértem és a várakozásoknak megfelelően tároltam gyorsítótárba.