Linux Mint 12가 충돌하면 gnome-shell
일반적으로 몇 초 내에 재부팅됩니다. 그렇지 않은 경우 재부팅 후 키링 데몬을 제거하는 것 같습니다.
while true; do DISPLAY=:0 gnome-shell --replace; done &
이와 같은 명령을 실행할 때마다 키 비밀번호를 묻습니다 git pull
. 재부팅 시 키링 데몬을 어떻게 다시 시작합니까(문제인 경우) gnome-shell
?
답변1
답변2
업데이트: 이 지침은 최신 정보가 아닐 수 있습니다.최근 시스템에서는 gnome-keyring 소켓이 임의의 디렉터리 ~/.cache/
( /run/user/<ID>/keyring/
적어도 Debian Jessie에서는)에서 이동되는 것처럼 보이므로 간단한 재부팅만으로 충분합니다.
gnome-keyring-daemon은 세션이 시작되기 전에 유일한 환경 매개변수를 설정하고 해당 환경은 소켓을 통해 데몬에 액세스하는 데 사용되기 때문에 다소 까다롭습니다. 환경은 각 애플리케이션에 복사되므로 모든 환경 변수를 재설정할 수 없습니다. 데몬을 수동으로 다시 시작하고 이전 디렉터리를 새 디렉터리에 심볼릭 링크한 다음(이전 환경이 여전히 유효함) 개별 서비스를 시작하는 방법이 있습니다.
실행 중인 gnome-keyring-daemon이 없는지 확인하십시오(이 명령은 pid를 반환해서는 안 됩니다. 필요한 경우 이를 종료해야 합니다).
pgrep -f gnome-keyring-daemon
오래된 열쇠 고리 소켓 지우기
rm -rf ~/.cache/keyring-*
데몬 시작 - setid를 사용하고 SDTIN, OUT 및 ERR을 리디렉션하므로 쉘/tty에 연결되지 않습니다. 그러면 ~/.cache/에 제어 소켓이 있는 새 디렉터리가 생성됩니다.
setsid /usr/bin/gnome-keyring-daemon </dev/null >/dev/null 2>&1
새 소켓 디렉터리를 기존 소켓 디렉터리에 심볼릭 링크합니다(와일드카드를 실제 디렉터리로 바꾸는 것이 이상적이지만 이전에 모두 삭제했기 때문에 하나만 있어야 합니다).
ln -s ~/.cache/keyring-* $GNOME_KEYRING_CONTROL
알아채다:gnome-shell에는 문제가 없지만 gnome-shell을 시작한 위치에서 이러한 변수를 내보내지 않은 경우 다음 환경 변수를 gnome-shell에 수동으로 전달해야 할 수도 있습니다
GPG_AGENT_INFO GNOME_KEYRING_CONTROL SSH_AUTH_SOCK
. #2에서 제거한 경로에서 값을 가져올 수 있어야 합니다(디렉토리가 여러 개인 경우 최신 디렉토리를 찾아야 합니다).다른 gnome-keyring 서비스를 시작합니다(지금까지 모든 것이 순조롭게 진행되면 소켓을 사용하여 데몬에 연결하고 서비스를 활성화합니다).
/usr/bin/gnome-keyring-daemon --start --components=pkcs11 /usr/bin/gnome-keyring-daemon --start --components=gpg /usr/bin/gnome-keyring-daemon --start --components=ssh
마지막으로 이 명령은 환경 변수를 인쇄합니다. 이를 무시하고 소켓 연결 오류가 없는지 확인하면 됩니다.
또한 오래된 소켓을 정리하려면 @reboot
cron 항목을 추가하여 정리할 수 있습니다.
find ~/.cache/ -maxdepth 1 -type l -name 'keyring-*' -delete