如何用Python程序替换launchd调度
Mac OS X系统的启动程序launchd可以用来安排任务,类似于cron。通过创建一个launchd代理,可以通过以下几种事件来触发程序:
- 经过了一段时间
- 到了某个特定的日期
- 某个文件的路径被修改了
- 某个目录里放入了东西(队列目录)
- 某个磁盘被挂载了
我之前一直依赖launchd来启动一系列Python脚本,以自动化我的OS X系统。不过,由于添加新脚本通常也需要安装新的launchd代理来启动它,我想把launchd这个环节去掉。我的想法是让一个Python程序等待并监视上述事件的发生,然后执行相应的操作。
有没有适合用来检测这些事件的Python模块?或者更一般地说,我该如何用Python(可能还包括通过AppScript桥接的AppleScript)来替代launchd?抱歉如果这个问题有点模糊。也欢迎推荐一些阅读材料。
1 个回答
1
对于文件系统监控的问题,也许你可以试试 pyfsevents。根据 这篇帖子,
FSEvents API 会在文件系统发生变化时通知你的应用程序。你可以利用这些文件系统事件来监控文件夹里的任何变化,比如文件和文件夹的创建、修改或删除。