この非常に役立つ回答に基づいて起動時に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実行ダイアログなど、ターミナル エミュレーターからコマンドを実行していない場合には気付かれません。