Macos 启动代理打开FileMaker脚本

Macos 启动代理打开FileMaker脚本,macos,filemaker,launchd,launch-agent,Macos,Filemaker,Launchd,Launch Agent,我在OS X 10.4.11上使用launchd获得类似于cron的FileMaker脚本调度,这让我经历了一段痛苦的时光。我描述了我早期的阵痛。起初,我认为问题在于FileMaker脚本打开了一个GUI,它似乎是启动守护进程的verboten。然后我将它改为LaunchAgent,它允许使用窗口资源,但仍然无法使用 下面列出了一些毫无意义的事情: 如果在手动加载任务后使用launchctl启动任务,则一切正常 sudo launchctl start my.script.name 如果您选择的

我在OS X 10.4.11上使用launchd获得类似于cron的FileMaker脚本调度,这让我经历了一段痛苦的时光。我描述了我早期的阵痛。起初,我认为问题在于FileMaker脚本打开了一个GUI,它似乎是启动守护进程的verboten。然后我将它改为LaunchAgent,它允许使用窗口资源,但仍然无法使用

下面列出了一些毫无意义的事情:

如果在手动加载任务后使用launchctl启动任务,则一切正常

sudo launchctl start my.script.name

如果您选择的StartInterval在未来几分钟内(而不是几小时内)并加载.plist,则一切正常。起初我认为这可能与屏幕保护程序有关——当ss执行时,一些东西会被垃圾收集或其他东西;但是,如果在ss开始后就安排好了,它似乎也能起作用,只要它在未来不太遥远

我将FileMaker程序的调用封装在一个shell脚本中,该脚本除了执行FileMaker程序外,还向日志文件写入时间戳。通过读取此日志文件,我可以验证,是的,launchd确实在适当的时间调用了shell脚本。或者至少,几乎,因为:

日志显示了一些奇怪的情况:如果我计划在晚上8:08启动脚本,我会得到两次执行,彼此间隔几秒钟:

[Tue Jan 24 20:07:57 CST 2012]正在执行脚本

[Tue Jan 24 20:08:00 CST 2012]正在执行脚本

我在这里有点力不从心了——我已经阅读了StackExchange网站上的相关手册、苹果技术文档和其他文章。我已经尽我所能完成了家庭作业。任何能帮我的人都会有严重的因果报应

更糟糕的是,这里的.plist带有一些粗糙的XML定义,日志信息被编辑掉了。记住,这在手动加载时有效,所以我知道plist本身是可以的

<plist version="1.0">
<dict>
    <key>Label</key>
    <string>shane.useragent.launcher</string>
    <key>ProgramArguments</key>
    <array>
            <string>/Users/shane/launchFM.sh</string>
    </array>
    <key>StartCalendarInterval</key>
    <dict>
            <key>Hour</key>
            <integer>20</integer>
            <key>Minute</key>
            <integer>8</integer>
    </dict>
</dict>
</plist>

您必须使用launchd进行此操作吗


我通过GUI使用内置的Cron工具打开本地FileMaker文件,然后在FileMaker服务器上运行脚本。

我有几个想法:1:当您运行脚本时,FileMaker是否会忙于做其他事情,因此没有响应?2:要编写脚本的数据库是否仍处于打开状态,如果是,它是否仍然是FileMaker中的活动数据库?3:您是否尝试过使用iCal警报实现自动化?4:您的FileMaker设置是什么?FM专业版/高级版?FM服务器?共享文件?单用户文件?感谢您的回复。1:没有;但可能的例外是,多次启动会导致它自身中断,因此会把事情搞砸。我会考虑的。2:运行脚本将激活相应的数据库。他说:我没有,但可能会这样。我想用苹果公司的方式做事,但我很快就失去了耐心。4:FM专业版。至于其余的,我不确定。在没有其他人运行任何基于FM的东西的情况下,在这些不同的情况下,你会期望不同的行为吗?4:如果没有其他人运行FM,那么通常不会。