• 首页
  • 数据库
    • mysql
  • web服务器
    • nginx
    • Apache
  • 操作系统
    • Centos
    • Debian
    • Ubuntu
    • mac
    • windows
  • 编程语言
    • html
    • php
  • 集群
    • mycat
  • 其它
欢迎光顾我的个人博客
  1. 首页
  2. 文章
  3. 操作系统
  4. mac
  5. 正文

Mac OS 创建定时任务

2020年06月23日 1927点热度 0人点赞 0条评论

Mac 中可以使用 crontab 一样的方式来使用定时任务。但是 crontab 来配置定时任务很容易出错。在 Mac 中,配置定时任务有更好的选择。

Mac 中有一个 launchctl 工具,这个工具是 Mac OS X 中用于启动进程的工具。Mac 中的各个进程都被配置成了 plist 文件。需要启动一个进行的时候只要执行以下命令:

launchctl load xxx.plist

停止一个进程只需要:

launchctl unload xxx.plist

Plist 文件配置

在 Mac 系统中,可以将需要处理的事情都写在 plist 文件中,plist 是一个 xml 格式的文件。plist 文件根据不同的需要可以放在不同的目录底下。Mac OS X 中支持放 plist 的目录如下:

  • /Library/LaunchDaemons: 系统启动后就会执行
  • /Library/LaunchAgents: 当用户登录系统后才会执行
  • ~/Library/LaunchAgents: 用户自定义的 plist
  • /System/Library/LaunchAgents: 由 Mac OS X 为用户定义的任务
  • /System/Library/LaunchDaemons: 由 Mac OS X 定义的守护进程任务

一个常见的 plist 文件模板如下:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0">
    <dict>
        <!--Plist 名称,必须唯一--> 
        <key>Label</key>
        <string>cn.rayjun..plist</string> 
        <!-- 指定要运行的程序的名称,可以是一个程序或者是一段脚本 -->   
        <key>ProgramArguments</key>
        <array>
            <string>/path/to/programer</string> 
        </array>
        <!-- 执行时间的指定 --> 
        <key>StartCalendarInterval</key> 
        <dict> 
            <!--在第几分钟会被执行 -->
            <key>Minute</key>
            <integer>00</integer>
            <!-- 在第几个小时会被执行-->
            <key>Hour</key> 
            <integer>22</integer> 
        </dict>
        <!-- 运行日志 -->
        <key>StandardOutPath</key>
        <string>/path/to/log/x.log</string>
        <!-- 错误日志 -->
        <key>StandardErrorPath</key> 
        <string>/path/to/err/x.err</string>
    </dict> 
</plist>

plist 脚本编写完成后放入到相应的目录底下即可,然后执行一下 launchctl load xx.plist 就可以启动任务。

定时任务配置

在 Plist 中,支持两种定时任务的设置:

  • StartInterval:定义任务多长时间(单位,秒)执行一次
  • StartCalendarInterval:这个配置类似在 crontab 中的配置,指定具体的执行日期、星期、每月、每日的各个时间点,具体参照上面的配置文件。月份和天数的配置类似。

(完)

标签: Launchctl
最后更新:2020年07月15日

多洛夫

多看多想多研究,总会有创新

点赞
< 上一篇
下一篇 >

文章评论

取消回复

多洛夫

多看多想多研究,总会有创新

博客更新日期
2025 年 7 月
一 二 三 四 五 六 日
 123456
78910111213
14151617181920
21222324252627
28293031  
« 7 月    
分类
标签聚合
wordpress mac centos Photoshop 谷歌浏览器插件 ffmpeg 图片格式转换 google插件 lls 视频截图 mysql 域名邮箱 php Launchctl Shell Yandex DNS haproxy Google Termux

© 2020 多洛夫