我已经尝试过搜索这个,并且看到其他人遇到类似的问题,但似乎没有在任何地方找到答案....
我有一个AppleScript,我试图在ssh上运行,以便我可以远程控制我的mac。这在以前的OSX 10.8中有效,但从升级到10.9后似乎不再起作用。
我正在执行的命令是:
ssh <user>@mymac.local "osascript -e 'tell application \"iTunes\" to play'"
脚本失败,返回:
execution error: iTunes got an error: Application isn’t running. (-600)
同样,我之前使用过的其他一些脚本现在似乎也在10.9上以相同的错误被破坏,所以这似乎与它运行在ssh上的事实有关,而不是iTunes的问题或特定的应用程序。
我尝试将applescripts打包为应用程序,将它们保存在远程Mac上,然后在ssh会话中打开它们,但这也失败了:
ssh <user>@mymac.local
open "~/Desktop/Play Music.app"
(其中'Play Music.app')是作为应用程序导出的AppleScript。
这不会在ssh会话中报告错误,但远程mac上会出现一个applescript对话框:
我还有几个在我的Mac上使用crontab安排的脚本,这些脚本在升级后也失败了。
我认为这是小牛队的一部分安全变化,但我似乎找不到让它重新运作的方法。有没有人对此有任何解决方案?
答案 0 :(得分:16)
Application isn’t running(-600)
是operating system error。
操作系统错误是AppleScript或Apple时发生的错误 应用程序从Mac OS请求服务。它们很少见,而且 经常在脚本中你无能为力 报告。
答案 1 :(得分:7)
Arrrrgh!我不希望这是答案,但在尝试了几乎所有事情后,现在看起来似乎在重启后工作....我的猜测是在appleeventsd中的某些东西感到困惑(尽管重启只是在自己的appleeventsd上没有'解决任何问题)。重启后osascript似乎再次表现。我仍然不相信这是完全固定的,但它似乎确实起作用......
答案 2 :(得分:5)
对我来说,这是Xcode中的Apple Entitlements。
具体地,
<强> com.apple.security.temporary-exception.apple事件强>
将其设为数组
然后添加两个项目。
<强> com.apple.finder 强>
<强> com.apple.iTunes 强>
请参阅:My applescript doesn't work any more when I upgrade my OS X to 10.9
答案 3 :(得分:3)
Apple Script不是问题。
通过打开系统偏好设置&gt;启用辅助设备和应用程序的访问权限。安全与安全隐私&gt;隐私&gt;辅助功能并检查您要允许访问的应用程序。
更多信息:https://support.apple.com/en-us/HT202866
Jacob Salmela还创建了一个实用程序,可以从命令行执行此操作:
http://jacobsalmela.com/os-x-yosemite-enable-access-assistive-devices-command-line/
答案 4 :(得分:3)
在我的计算机上,正常运行时间为162天,杀死appleeventsd
解决了该问题。我认为appleeventsd和较长的正常运行时间是不好的组合。
答案 5 :(得分:0)
系统事件是一个非常挑剔的OS X组件。这是我的方法来解决可怕的“应用程序没有运行-600”错误:
set app_name to "System Events"
set the_pid to (do shell script "ps ax | grep " & (quoted form of app_name) & "$
if the_pid is not "" then do shell script ("kill -9 " & the_pid)
tell application "System Events"
-- activate
end tell
我使用kill -9杀死“系统事件”,然后重新启动它。
答案 6 :(得分:0)
@benmarbles代码似乎在第2行的末尾遗漏了一些东西 - 它甚至都不会编译。
无论如何,我在“图像事件”中看到了同样的问题,我用该脚本的简化版本解决了它。以下是我处理它的方法:
tell application "System Events" to set thePID to (unix id of process "Image Events")
set killCMD to ("kill -9 " & thePID) as text
do shell script killCMD with administrator privileges
将Image Events
替换为System Events
以取消该过程。系统事件过程使自己保持活力,因此无需重新启动它。
答案 7 :(得分:0)
当我无法执行GUI脚本时,我遇到了同样的错误,但更改了系统偏好设置&gt;安全与安全隐私&gt;隐私&gt;该特定应用的辅助功能设置,并在每行之间添加delay 0.5
更正了它!
答案 8 :(得分:0)
我对此消息感到困惑,因为“系统事件”无法在命令行中使用较新版本的Mac OS X:
osascript -e 'tell application "System Events" to display dialog "Build finished"'
事实证明Applescript的语法(改为?)只是:
osascript -e 'display dialog "Build finished"'
答案 9 :(得分:0)
对我而言,这是在我尝试打开gitk
时发生的。改回我以前的分支,gitk
能够再次打开
答案 10 :(得分:0)
你好,从2k19开始:)下面的方法对我有所帮助
tell app "app_name"
launch
delay 2
end tell
tell app "app_name"
do something usefull
end tell
或
osascript -e "tell app \"app_name\"" -e "launch" -e "delay 2"-e "end tell" -e "tell app \"app_name\"" -e "do someting usefull" - e "end tell"
答案 11 :(得分:0)
对于通过打开系统偏好设置 > 安全和隐私 > 隐私 > 辅助功能启用对 AEServer 的访问解决了我的问题
答案 12 :(得分:0)
如果您通过 ssh 以错误的用户身份运行脚本,您也会收到此错误 - 确保您以要编写脚本的用户身份登录。
答案 13 :(得分:0)
我从活动监视器中终止了“系统事件”进程,然后我的 ssh 脚本工作了。结果重新启动了“系统事件”。我猜它只是陷入了混乱状态。