如何用Python程序替换launchd调度

0 投票
1 回答
503 浏览
提问于 2025-04-15 19:09

Mac OS X系统的启动程序launchd可以用来安排任务,类似于cron。通过创建一个launchd代理,可以通过以下几种事件来触发程序:

  • 经过了一段时间
  • 到了某个特定的日期
  • 某个文件的路径被修改了
  • 某个目录里放入了东西(队列目录)
  • 某个磁盘被挂载了

我之前一直依赖launchd来启动一系列Python脚本,以自动化我的OS X系统。不过,由于添加新脚本通常也需要安装新的launchd代理来启动它,我想把launchd这个环节去掉。我的想法是让一个Python程序等待并监视上述事件的发生,然后执行相应的操作。

有没有适合用来检测这些事件的Python模块?或者更一般地说,我该如何用Python(可能还包括通过AppScript桥接的AppleScript)来替代launchd?抱歉如果这个问题有点模糊。也欢迎推荐一些阅读材料。

1 个回答

1

对于文件系统监控的问题,也许你可以试试 pyfsevents。根据 这篇帖子

FSEvents API 会在文件系统发生变化时通知你的应用程序。你可以利用这些文件系统事件来监控文件夹里的任何变化,比如文件和文件夹的创建、修改或删除。

撰写回答