ログイン時に keepassxc データベースのロックを解除しています...ほぼ完了ですが、残りの問題をどのように削除すればよいでしょうか?

ログイン時に keepassxc データベースのロックを解除しています...ほぼ完了ですが、残りの問題をどのように削除すればよいでしょうか?

この非常に役立つ回答に基づいて起動時にKeePassXCを起動するkeepassxcログイン時にロック が解除されて動作するという、望みどおりの結果をほぼ得られました。

しかし、私(および同じ問題について回答コメントした別のユーザー)には、それが役に立たない問題が 1 つ残っています。つまり、リンクされた回答に従って、コマンドを発行します...

secret-tool lookup keepass <database_name> | keepassxc --pw-stdin <path-to-your-database>.kbdx

...これはkeepassxc起動すると動作しますが、コマンドの次の行にこのプロンプトが表示されます

Database password:

スクリプトは入力を待機してハングします。

スクリプトの部分は機能します...発行できます

secret-tool lookup keepass <database_name>

正しいパスワードを入力すると、

発行できます

echo <password> | keepassxc --pw-stdin <path-to-your-database>.kbdx

起動してkeepassxcログインしますが、プロンプトが表示され、スクリプトがハングしたままになります。

私が行った場合

echo <password> | keepassxc --pw-stdin <path-to-your-database>.kbdx &

まだプロンプトが表示されてハングしますが、押すenterと動作します。

それで、どうやら私は何らかの方法でそれを提供する必要があるようですenter?

  • Ubuntuバージョン: 18.04
  • keepassxc バージョン: 2.6.4

答え1

短い答え

これは正常な動作です。ターミナルは KeePassXC が終了した場合にのみ解放されます。

長い答え

Database password:ターミナルに表示されるプロンプトは、オプションに指定したオプションの結果です。--pw-stdinパイプkeepassxcがあるため、標準入力はキーボードではなく、前のechoコマンドの出力になります。

KeepassXC が実行中である限り、プロンプトはブロックされます。これは正常であり、他のプログラムでも発生します。たとえば、nautilusターミナルから起動してみてください。

プロセスをバックグラウンドに移動することでプロンプトを解除できます。Ctrl+を押してZから、 と入力して、bgプロセスをバックグラウンドで実行し続けます。は、プロセスfgを再びフォアグラウンドに戻します。 これは「従来の」ターミナルの方法です。

プロセスがフォアグラウンドにある場合、グラフィカル ユーザー インターフェイスで終了するか、ターミナルでCtrl+を押して KeePassXC を終了すると、ターミナルが解放されます。C

Altこの動作は、デスクトップ ランチャーやショートカット キーのバインド、または+F2実行ダイアログなど、ターミナル エミュレーターからコマンドを実行していない場合には気付かれません。

関連情報