我正在连接一个 Python 脚本来与 cron 一起运行(在 Ubuntu 12.04 上),但身份验证不起作用。
cron 脚本访问几个服务,并且必须提供凭据。存储这些凭证keyring
很简单,只不过当 cron 作业实际运行时,无法检索凭据。脚本每次都会失败。
据我所知,这与 cron 运行的环境有关。我找到了一组帖子,这些帖子表明关键是导出脚本DBUS_SESSION_BUS_ADDRESS
。一切顺利,我可以相当轻松地获取该地址并将其导出并从 Python 获取它。但它只是产生一个新的错误:Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
。环境DISPLAY=:0
没有影响。
那么有谁知道如何解锁吗gnome-keyring
来自在 Ubuntu 12.04 上的 Cron 作业上运行的 Python?
很抱歉,我没有答案,但我想我根据我正在处理的问题知道了一些正在发生的事情。我正在尝试获取一个 Web 应用程序和 cron 脚本来使用一些代码,这些代码使用 python-keyring 将 Google API 的 oauth 令牌隐藏到密钥环中。
无论我做什么,Web 应用程序和 cron 作业运行的环境都需要手动干预来解锁密钥环。当您的代码在非交互式会话中运行时,这是完全不可能的。当尝试我的研究中建议的一些技巧时,问题仍然存在,例如为进程所有者提供与密钥环密码匹配的登录密码并将密钥环密码设置为空字符串。
我几乎可以保证您的错误源于 Gnome-Keyring 试图启动交互式(图形)提示和轰炸,因为您无法从 cron 执行此操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)