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에서), 그래서 간단한 재시작만으로도 충분합니다.
그놈 키링 데몬이 세션이 시작되기 전에 고유 한 환경 매개 변수를 설정하고이 환경이 데비안 트로프에 액세스하는 데 사용되므로 약간 까다 롭습니다. 소켓입니다. 환경은 모든 응용 프로그램에 복사되므로 모든 환경 변수를 재설정 할 방법이 없습니다. 데몬을 수동으로 다시 시작하고 이전 디렉토리를 새 디렉토리에 심볼릭 링크 한 다음 (이전 환경이 계속 작동하도록) 개별 서비스를 시작하는 방식입니다.
-
그놈이 없는지 확인합니다. keyring-daemon 실행 중 (이 명령은 pid를 반환하지 않아야합니다. pid를 종료해야하는 경우)
pgrep -f gnome-keyring-daemon
-
이전 키링 삭제 소켓
rm -rf ~/.cache/keyring-*
-
데몬 프로세스 시작-setsid를 사용하고 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에서 삭제 된 경로에서 값을 가져올 수 있어야합니다 (최신 디렉토리를 찾아야하는 여러 디렉토리가있는 경우). -
다른 그놈 시작- 키링 서비스 (소켓을 사용하여 데몬에 연결하고 지금까지 문제가 없으면 서비스를 활성화합니다) :
/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
댓글
Answer
다음은 데몬의 클린 재부팅을 수행해야합니다.
gnome-keyring-daemon -r -d
출처 : ArchLinux
댓글
- 민트 18 (사라)에서 완벽하게 작업했습니다. 감사합니다!
- 우분투 18.04에서 작업했습니다. 감사합니다!
~/.cache/
의 키링과 관련된 것이 없으므로 해당 단계를 건너 뛸 수 있습니다. 그냥 죽이고setsid
재실행으로 충분했습니다. 다음ssh
로그인이 내 비밀번호를 제대로 요청했고 예상대로 캐시되었습니다.