Linux Mint12でgnome-shell
がクラッシュすると、通常は数秒以内に再び起動します。そうでない場合は、キーリングデーモンが必要なようです。これは、再起動後、
while true; do DISPLAY=:0 gnome-shell --replace; done &
実行するたびにキーパスフレーズを要求するためです。 git pull
のようなコマンド。gnome-shell
を再起動するときに、キーリングデーモンを再起動するにはどうすればよいですか(問題がここにある場合)。
回答
更新:これらの手順は廃止されている可能性があります。最近のシステムでは、gnome-keyringソケットが~/.cache/
のランダムディレクトリから/run/user/<ID>/keyring/
に移動したようです(at少なくともDebianJessieでは)なので、単純な再起動で十分です。
セッションが開始する前にgnome-keyring-daemonが一意の環境パラメータを設定し、この環境を使用してデーモントラフにアクセスするため、少し注意が必要です。ソケット。環境はすべてのアプリケーションにコピーされるため、すべての環境変数をリセットする方法はありません。デーモンを手動で再起動し、古いディレクトリを新しいディレクトリにシンボリックリンクして(古い環境が引き続き機能するように)、個々のサービスを開始する方法。
-
gnome-がないことを確認します。 keyring-デーモンが実行されています(このコマンドを強制終了する必要がある場合、このコマンドは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
-
新しいソケットディレクトリを古いものにシンボリックリンクします1つ(理想的にはワイルドカードを実際のディレクトリに置き換えますが、以前にすべて削除したため、1つだけにする必要があります):
ln -s ~/.cache/keyring-* $GNOME_KEYRING_CONTROL
NB: gnome-shellの問題はありませんが、gnome-shellを開始した場所からこれらの変数がエクスポートされていない場合は、多くの問題が発生します。次の環境変数を手動でgnome-shellに渡す必要があります:
GPG_AGENT_INFO GNOME_KEYRING_CONTROL SSH_AUTH_SOCK
。 #2で削除されたパスから値を取得できるはずです(複数のディレクトリがある場合は、最新のものを探す必要があります)。 -
他のgnomeを起動します-キーリングサービス(ソケットを使用してデーモンに接続し、これまでのところすべてがうまくいった場合はデーモンのサービスを有効にします):
/usr/bin/gnome-keyring-daemon --start --components=pkcs11 /usr/bin/gnome-keyring-daemon --start --components=gpg /usr/bin/gnome-keyring-daemon --start --components=ssh
これらの最後のコマンドは出力されます環境変数…無視してかまいません。ソケット接続エラーがないことを確認してください。
また、古いソケットをクリーンアップする場合は、
クリーンアップを行うcronエントリ:
find ~/.cache/ -maxdepth 1 -type l -name "keyring-*" -delete
コメント
回答
これにより、デーモンのクリーンリブートが実行されます。
gnome-keyring-daemon -r -d
出典: ArchLinux
コメント
- Mint 18(サラ)で完璧に動作しました。ありがとう!
- ubuntu 18.04で働いていました、ありがとう!
~/.cache/
のキーリングに関連するものがなかったため、これらの手順をスキップできました。殺すだけで、setsid
の再起動で十分でした。次のssh
ログインでパスワードの入力を求められ、期待どおりにキャッシュされました。