所以我有一些复杂的设置,但让我看看我是否可以简化
我在远程OSX机器上运行单声道应用程序。 这个应用程序偶尔会使单声道运行时崩溃。
有一个恢复shell脚本通过launchctl每2分钟运行一次。 该脚本通过ps ax | grep mono检测单声道死亡 ps ax | grep mono
如果进程已经死了,它会运行下面的applescripts来产生一个新的terminal窗口
osascript -e 'tell app "Terminal" to close every window' osascript -e 'tell app "Terminal" to do script "mono --server myapp.exe'
我在“用户空间”的terminal窗口中运行单声道应用程序的原因是因为应用程序与其他窗口应用程序交互,不能直接从appchecking.sh文件
但是,有时上述过程失败,出现以下错误
$ osascript -e 'tell application "Terminal" to open' 31:35: execution error: An error of type -10810 has occurred. (-10810)
有什么奇怪的是在这种状态下,如果我SSH进入受影响的机器,它显示terminal没有运行。 一个ps ax | grep Terminal ps ax | grep Terminal什么也没有。 但是,如果我将VNC放入受影响的工作站,terminal进程突然变得可见,并且我的脚本不再返回该错误
OSX机器设置为以默认用户身份自动login。 如果我在这种状态下重启机器,它会恢复正常。 我猜是什么是我的-10810错误的来源(猜不知我的注销,我的appcheck.sh不作为我的用户了吗?)