Mac定时任务-利用launchctl定时启动任务
# 介绍
# Launchctl
Launchctl控制OS X系统里的启动进程(launch),在Mac里有一个命令行工具叫做:launchctl,可以用来控制服务的自动启动或者关闭。
# Plist文件
Plist的全称是Property lists,是一种用来存储串行化后的对象的文件。属性列表文件的文件扩展名为.plist,因此通常被称为plist文件。Plist文件通常用于储存用户设置,也可以用于存储捆绑的信息。
Plist组织数据到命名值和列表值,主要通过几个主要的Core Foundation类型:CFString, CFNumber, CFBoolean, CFDate, CFData, CFArray, 和 CFDictionary。
# 编写APP启动脚本
1.打开launchpad->脚本编辑器,写入如下代码
set appName to "XXApp(此处为app名称)"
if application appName is not running then
tell application "Finder"
activate
open application file "XXApp.app" of folder "Applications" of startup disk
end tell
return "Running"
else
return "Not running"
end if
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
保存到合适的路径
# 创建launch plist启动文件
进入~/Library/LaunchAgents文件夹,创建新的plist文件com.autoOpenXXApp
<?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>
<!-- Label唯一的标识 -->
<key>Label</key>
<string>com.demo.plist</string>
<!-- 指定要运行的脚本 -->
<key>ProgramArguments</key>
<array>
<string>osascript</string>
<string>/Users/mac/Downloads/AutoOpenXXApp.scpt</string>
</array>
<!-- 指定要运行的时间 -->
<key>StartInterval</key>
<integer>10</integer>
<!-- 标准输入文件 -->
<key>StandardInPath</key>
<string>/Users/mac/Downloads/testScript.log</string>
<!-- 标准输出文件 -->
<key>StandardOutPath</key>
<string>/Users/mac/Downloads/testScript.log</string>
<!-- 标准错误输出文件 -->
<key>StandardErrorPath</key>
<string>/Users/mac/Downloads/testScript.log</string>
</dict>
</plist>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# launchctl命令
cd ~/Library/LaunchAgents
# 挂载任务
launchctl load -w com.autoOpenXXApp.plist
# 开启任务
launchctl start com.autoOpenXXApp.plist
# 停止任务
launchctl stop com.autoOpenXXApp.plist
# 重新挂载任务 - 修改脚本后需要重新挂载
# 卸载任务
launchctl unload -w com.autoOpenXXApp.plist
# 重新挂载任务
launchctl load -w com.autoOpenXXApp.plist
# 参考资料
上次更新: 2024/08/11, 01:59:03