mac定时任务launchctl

文档: launchctl Man Page - macOS - SS64.com

主要命令:

加载(启用): launchctl load xxx.plist
取消加载(取消启用): launchctl unload xxx.plist
查看状态: launchctl list (Status 不是0的话表示有问题)

Plist 文件配置

目录位置

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

一般放在 ~/Library/LaunchAgents即可. (同目录还有一些其他程序的配置,可以参考使用)

image.png

指令

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

  • StartInterval:定义任务多长时间(单位,秒)执行一次
  • StartCalendarInterval:这个配置类似在 crontab 中的配置,指定具体的执行日期、星期、每月、每日的各个时间点.

设置周期运行: StartInterval <integer>

单位秒.
使用:

<key>StartInterval</key>
<integer>60</integer>

设置定时运行: StartCalendarInterval <dictionary of integers or array of dictionary of integers>

使用:

        <key>StartCalendarInterval</key> 
        <dict> 
            <!--在第几分钟会被执行 -->
            <key>Minute</key>
            <integer>00</integer>
            <!-- 在第几个小时会被执行-->
            <key>Hour</key> 
            <integer>22</integer> 
        </dict>

参考:

Minute <integer>
The minute on which this job will be run.

Hour <integer>
The hour on which this job will be run.

Day <integer>
The day on which this job will be run.

Weekday <integer>
The weekday on which this job will be run (0 and 7 are Sunday).

Month <integer>
The month on which this job will be run.

WatchPaths - 监控路径,当路径文件有变化是运行程序,也是数组

        <key>WatchPaths</key>
        <array>
                <string>/Library/Preferences/SystemConfiguration</string>
        </array>

创建配置

  1. 文件必须以plist结尾.
  2. 配置文件中引用的命令脚本的目录或者输出日志的目录均不可是用户私有目录:Apple 已将 ~/documents desktop 和 downloads 指定为私有目录。launchd 无法从它们执行脚本。 使用私有目录launchctl list查看状态会显示126.

创建com.enever615.ejectdisk.plist,作用是每天早上自动推出timemachine备份磁盘,这样我就可以直接拔掉扩展坞带走电脑了,示例文件如下:

<?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>
        <key>Label</key>
        <!--Plist 名称,必须唯一--> 
        <string>com.never615.ejectdisk</string>
        <key>ProgramArguments</key>
        <!-- 指定要运行的程序的名称,可以是一个程序或者是一段脚本 数组类型 -->   
        <array>
          <string>sh</string>
          <string>-c</string>
          <string>shortcuts run 推出磁盘</string>
        </array>
        <key>StartCalendarInterval</key>
        <dict>
            <key>Minute</key>
            <integer>00</integer>
            <key>Hour</key>
            <integer>06</integer>
        </dict>
        <key>StandardOutPath</key>
        <string>/Users/never615/scripts/launchctl/logs/ejectdisk.log</string>
        <key>StandardErrorPath</key>
        <string>/Users/never615/scripts/launchctl/logs/ejectdisk.err</string>
    </dict>
</plist>

shortcuts 是调用系统的快捷指令.


截屏2023-12-11 16.29.37.png

GUI

brew install --cask launchcontrol 可以安装launchctl的gui工具,但是他是付费软件,100多点,如果你配置遇到问题的话试用版也可以帮你分析检查出部分问题,或许对你有用.

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342