基于这个非常有用的答案Start KeePassXC on boot 我几乎得到了keepassxc
登录时解锁工作的预期结果。
但是,我(和另一位对同一问题发表评论的用户)仍然存在一个问题,使其无法发挥作用。也就是说,根据链接的答案,我给出命令......
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
简短的回答
你看到的是正常行为。只有在 KeePassXC 终止后,终端才会被释放。
长答案
您在终端上看到的
Database password:
提示是--pw-stdin
您提供给选项的keepassxc
选项的结果。由于有管道,标准输入不是你的键盘,而是上一个echo
命令的输出。只要 KeepassXC 正在运行,您的提示就会被阻止。这是正常的,并且在任何其他程序中都会发生。例如,尝试从
nautilus
终端开始。您可以通过将该进程移至后台来释放提示:按Ctrl+ Z,然后键入
bg
以继续在后台运行该进程。fg
将再次将其带到前台。那是“传统”的终端实践。随着进程在前台,当您退出 KeePassXC 时,终端将被释放,无论是在图形用户界面中退出它,还是在终端中按Ctrl+ C。
当您不从终端仿真器(例如从桌面启动器或从快捷键绑定,甚至使用Alt+F2运行对话框)运行命令时,不会注意到此行为。