我有一个 python 脚本,由于某种原因(这里不重要),我正在通过 shell 脚本执行它。在我的脚本中,我基本上是在获取一些 url 内容并将电子邮件发送给特定的人。我已经使用类似这样的方法为此添加了安全钥匙串(keychain) security 添加通用密码 -s SMTP -a USERID -w PASSWORD
当从命令行运行时,系统提示我授予对 “安全”命令的钥匙串(keychain)项目。授予后 通过钥匙串(keychain)访问访问我可以运行脚本但它不再 提示检索密码,它确实会给我发送电子邮件。
但是 Cron Job 和 Launchd 没有给我想要的输出。在谷歌搜索了一下后,我发现 cronjob 无法访问钥匙串(keychain),如果我想让它达到目的,我需要在作为 cron 作业运行时提供密码。我不太确定 launchd 是否可以访问钥匙串(keychain)。对于 Ruby,它似乎对下面的人有用。 https://lists.macosforge.org/pipermail/launchd-dev/2008-August/000363.html
我和那个人有同样的问题。从 launchctl 调用时,我没有收到任何电子邮件。但是,如果我在代码中硬编码密码,我会在指定时间收到电子邮件。所以我假设我的问题是 launchd 无法读取的钥匙串(keychain)。有没有办法将钥匙串(keychain)访问权限授予 launchd? 我的 com.Query.plist 文件在 $HOME/Library/LaunchAgents 目录中。
最佳答案
我今天也遇到了这个。
它似乎没有很好的记录,但如果您将以下内容添加到您的 plist 中,您的应用程序将能够在作为 LaunchAgent
运行时看到用户钥匙串(keychain):
<key>SessionCreate</key>
<true/>
归功于:
关于macos - Launchd 无法访问 Mac OS 钥匙串(keychain),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47582989/