Python,Keyring和Cron

Gas*_*ove 10 python ubuntu cron

我正在使用cron(在Ubuntu 12.04上)运行python脚本 - 很简单.除了身份验证.

cron脚本访问几个服务,并且必须提供凭据.存储这些凭据keyring很容易 - 除了当cron作业实际运行时,无法检索凭据.脚本每次都失败了.

就像我所知道的那样,这与cron运行的环境有关.我追踪了一组帖子,这些帖子表明关键是脚本导出DBUS_SESSION_BUS_ADDRESS.一切都很好 - 我可以很容易地获得该地址并将其导出并从Python中获取 - 但它只是生成一个新错误:Unable to autolaunch a dbus-daemon without a $DISPLAY for X11.设置DISPLAY=:0无效.

所以.有没有人想出如何从在Ubuntu 12.04上的cron作业上运行的Python解锁gnome-keyring?

Dav*_*ads 3

很抱歉,我没有答案,但我想我根据我正在处理的问题知道了一些正在发生的事情。我正在尝试获取一个 Web 应用程序和 cron 脚本来使用一些代码,这些代码使用 python-keyring 将 Google API 的 oauth 令牌隐藏到密钥环中。

无论我做什么,Web 应用程序和 cron 作业运行的环境都需要手动干预来解锁密钥环。当您的代码在非交互式会话中运行时,这是完全不可能的。当尝试我的研究中建议的一些技巧时,问题仍然存在,例如为进程所有者提供与密钥环密码匹配的登录密码并将密钥环密码设置为空字符串。

我几乎可以保证您的错误源于 Gnome-Keyring 试图启动交互式(图形)提示和轰炸,因为您无法从 cron 执行此操作。