[关闭]
@qidiandasheng 2017-01-09T15:50:50.000000Z 字数 1875 阅读 3053

Mac创建定时任务

使用工具


创建定时任务主要就是为了每天固定运行一下脚本之类的。比如cocoapods仓库每天总是有新的第三方库提交,那么pod update的时候就会更新master分支,所以我就需要每天定时更新master,省得到时候再去pull master。

launchctl 定时任务

一般最常用的就是launchctl这种定时方式了。它是通过plist配置的方式来实现定时任务的。

plist文件格式

上图就是一个简单的定时任务的plist文件。下面来简单说一下里面Key的意思。

plist文件放置处

建议放在 ~/Library/LaunchAgents 下面。

下面再来理解几个基础概念:

/System/Library和/Library和~/Library目录的区别?

/System/Library目录是存放Apple自己开发的软件。
/Library目录是系统管理员存放的第三方软件。
~/Library/是用户自己存放的第三方软件。

LaunchDaemons和LaunchAgents的区别?

LaunchDaemons是用户未登陆前就启动的服务(守护进程)。
LaunchAgents是用户登陆后启动的服务(守护进程)。

launchctl 命令

添加: launchctl load /System/Library/LaunchAgents/com.test.plist
移除: launchctl unload /System/Library/LaunchAgents/com.test.plist
查看: launchctl list
立即执行任务:launchctl start com.aigo.launchctl.plist
停止执行任务:launchctl stop com.aigo.launchctl.plist

注意:
1. 你所运行的脚本需要有权限才能执行:chmod a+x test.sh
2. 要让任务生效,必须先load命令加载这个plist
3. 如果任务被修改了,那么必须先unload,然后重新load
4. start可以测试任务,这个是立即执行,不管时间到了没有
5. 执行start和unload前,任务必须先load过,否则报错
6. ProgramArguments内不能直接写命令,只能通过shell脚本来执行

launchctl的GUI工具

LaunchControl,用这个工具可以查看到所有的launchctl定时任务。并用GUI的方式进行修改执行等。

参考

OSX系统添加定时任务
Mac OSX的开机启动配置
Mac上,执行定时任务:launchctl

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注