mac crontab 打开应用程序的行为不同于从 Dock 打开

mac crontab open application behaves differently than opening from Dock

我写了一个 shell 脚本来检查 Microsoft Lync 是否 运行ning,如果不是 运行ning 则打开应用程序。如果我直接从 bash 终端执行 shell 脚本,它会打开 Lync 并且记住 Username/password 被点击它登录正常。 我在 crontab 条目中输入的相同脚本每分钟 运行 这样我就可以启动 Lync 如果还没有 运行ning。但出于某种原因,当从这个 crontab 脚本执行中打开 Lync 时,Lync 应用程序不会自动登录并要求我提供 Lync 密码。 为什么这种行为不同?

crontab 条目 -

* 9-17 * * 1-5 $HOME/lync.sh

#!/bin/bash

LYNC_PID=$(launchctl list | grep "Lync" | awk '{print }')

if [ "$LYNC_PID" = "" ]
then
echo "Lync not running"

ERROR_REPORTER_PID=$(ps -ef | grep -i "[m]icrosoft error reporting" | awk '{print }')
if [ "$ERROR_REPORTER_PID" != "" ]
then
    echo "Killing Microsoft Error Reporter" 
    kill -9 $ERROR_REPORTER_PID
fi
echo "Starting Lync" 
open /Applications/Microsoft\ Lync.app

fi

会话中的 Dock 和其他交互式命令 运行 可以访问会话的信息,包括您的密钥环和屏幕。 Cron 有 none 个。尝试 crontab 中的 运行 交互式程序注定要失败,即使在常规主要使用场景中不是完全如此,在讨厌的极端情况下也是如此。