Linux Mint 12에서 gnome-shell가 충돌하면 일반적으로 몇 초 내에 다시 나타납니다. 그렇지 않으면 키링 데몬을 사용하는 것 같습니다. 다시 시작하면

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

실행할 때마다 키 암호를 요청하기 때문입니다. git pull와 같은 명령. gnome-shell를 다시 시작할 때 키링 데몬을 다시 시작하려면 (문제가 여기에있는 경우) 어떻게해야합니까?

답변

업데이트 :이 지침은 더 이상 사용되지 않을 수 있습니다. 최근 시스템에서는 gnome-keyring 소켓이 ~/.cache/의 임의 디렉토리에서 /run/user/<ID>/keyring/ (at 최소한 데비안 Jessie에서), 그래서 간단한 재시작만으로도 충분합니다.

그놈 키링 데몬이 세션이 시작되기 전에 고유 한 환경 매개 변수를 설정하고이 환경이 데비안 트로프에 액세스하는 데 사용되므로 약간 까다 롭습니다. 소켓입니다. 환경은 모든 응용 프로그램에 복사되므로 모든 환경 변수를 재설정 할 방법이 없습니다. 데몬을 수동으로 다시 시작하고 이전 디렉토리를 새 디렉토리에 심볼릭 링크 한 다음 (이전 환경이 계속 작동하도록) 개별 서비스를 시작하는 방식입니다.

  1. 그놈이 없는지 확인합니다. keyring-daemon 실행 중 (이 명령은 pid를 반환하지 않아야합니다. pid를 종료해야하는 경우)

    pgrep -f gnome-keyring-daemon 
  2. 이전 키링 삭제 소켓

    rm -rf ~/.cache/keyring-* 
  3. 데몬 프로세스 시작-setsid를 사용하고 SDTIN, OUT을 리디렉션합니다. & ERR이므로 쉘 / tty와 관련이 없습니다. 그러면 ~ / .cache /에 제어 소켓이있는 새 디렉터리가 생성됩니다.

    setsid /usr/bin/gnome-keyring-daemon </dev/null >/dev/null 2>&1 
  4. 새 소켓 디렉터리를 이전 디렉터리에 심볼릭 링크 하나 (이상적으로는 와일드 카드를 실제 디렉토리로 바꾸지 만 이전에 모두 제거 했으므로 하나만 있어야 함) :

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

    주의 : 귀하의 gnome-shell 문제는 없지만 gnome-shell을 시작하는 위치에서 이러한 변수를 내 보내지 않으면 많은 수 gnome-shell에 다음 환경 변수를 수동으로 전달해야합니다. GPG_AGENT_INFO GNOME_KEYRING_CONTROL SSH_AUTH_SOCK. # 2에서 삭제 된 경로에서 값을 가져올 수 있어야합니다 (최신 디렉토리를 찾아야하는 여러 디렉토리가있는 경우).

  5. 다른 그놈 시작- 키링 서비스 (소켓을 사용하여 데몬에 연결하고 지금까지 문제가 없으면 서비스를 활성화합니다) :

    /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 크론 항목 :

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

댓글

  • CentOS 7.3 / gnome-keyring 3.14에서는 ~/.cache/의 키링과 관련된 것이 없으므로 해당 단계를 건너 뛸 수 있습니다. 그냥 죽이고 setsid 재실행으로 충분했습니다. 다음 ssh 로그인이 내 비밀번호를 제대로 요청했고 예상대로 캐시되었습니다.
  • 사실 저는 ' Debian 7 / Wheezy에서 8 / Jessie 로의 업그레이드에 해당하는 것 같습니다. 그 전에도 키링 데몬에 의존하지 않았기 때문에 ' 지금 어떻게 작동해야하는지 '도 모릅니다.

Answer

다음은 데몬의 클린 재부팅을 수행해야합니다.

gnome-keyring-daemon -r -d 

출처 : ArchLinux

댓글

  • 민트 18 (사라)에서 완벽하게 작업했습니다. 감사합니다!
  • 우분투 18.04에서 작업했습니다. 감사합니다!

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다