GNU/Linux >> Linux の 問題 >  >> Linux

起動時に最初のシェルがキーを要求するだけの方法でキーチェーンを実行するにはどうすればよいですか?

KDEを起動するときに複数のシェルタブを開き、keychainを追加しました 私の~/.shellrcに 問題は、ログイン時にすべてのタブでキーパスワードの入力を求められることです。これを行うのは非常に面倒です。すべてのタブが簡単に起動し、1つのタブにログインすると、すべてのタブにキーが読み込まれるようにするための適切な解決策はありますか?

承認された回答:

2つの方法があります:

次のように、キーチェーンが1つのタブでのみ開くようにすることができます:

if mkdir /tmp/keychain.lock; then
  eval `keychain --eval --agents ssh id_dsa`
  rm -r /tmp/keychain.lock
fi

しかし、それはあなたが着陸した最初のタブにないかもしれません–あなたはそれを捜さなければならないかもしれません、それは同じように迷惑かもしれません。これは、mkdirが不可分操作であるために機能します。成功するスクリプトは1つだけであり、そのスクリプトでプロンプトが表示されます。

別の方法では、すべてのタブにプロンプ​​トが表示されますが、いずれかのタブに応答すると終了します。ファイルをポーリングするか、次のようなinotify-toolsを使用できます:

file=/tmp/keychain-wait
touch $file
inotifywait -e delete_self $file |\
while read file event; do 
 if [ "$event" = "DELETE_SELF" ]; then
   pkill keychain
 fi
done &

keychain
rm $file

これはプロンプトを表示しますが、最初にファイルが削除されているかどうかを確認するためにウォッチャーを起動します。プロンプトが満たされると、ファイルは削除され、ウォッチャーは待機中の他のプロンプトをすべて強制終了します。 inotifywaitはinotify-toolsからのものです。 inotifyはLinuxAPIです。他のUnicesにも同様のAPIがある可能性がありますが、そうでない場合は、ファイルが削除されているかどうかを確認するためにポーリングするループのみが必要です。


Linux
  1. 「java」コマンドは、インストールされている JVM を実行しません

  2. 文字列にドットが含まれている場合に正確な単語をgrepする方法

  3. Fish Shell:オートコンプリート機能の色をカスタマイズするにはどうすればよいですか?

  1. Grepからの出力を抑制して、終了ステータスのみを返すようにするにはどうすればよいですか?

  2. シェルから Vim コマンドを実行するには?

  3. Linux で特定のキーボードのみにキーを再マップする方法

  1. 初めてpostgresqlを設定するには?

  2. 起動時にシェルスクリプトを実行する方法

  3. 2 つのファイルの最初の行だけを比較するには?