Mac定时任务
常见的定时任务可以使用crontab命令实现,crontab是linux平台型常见的设置定时任务的方式,如果还需要搭配用户启动后自动开启定时任务,在Mac平台下推荐使用launchctl。launchctl的具体用法网上很多,下面仅记录下launchctl依赖的plist文件的常用key的用途:
1.Label(字符串类型)
Job的唯一标识。
2.Program(字符串类型)
这个是传给 int execvp(const char *file, char *const argv[]);的第一个参数,可以不传。一般用来放需要执行的命令,如果不传会使用ProgramArguments的第一个字符串。字符串类型。
3.ProgramArguments (array of strings)
这个是传给 int execvp(const char *file, char *const argv[]);的第二个参数,一般用来传命令的一些参数。
4.OnDemand (boolean)
这个键在Mac OS X 10.4中被用来控制一个Job是否被keep alive。默认情况下是true。 这个键已被废弃,在Mac OS X 10.5及以后的版本中KeepAlive选项取代。
5.RunAtLoad (boolean)
默认是false,用来标识Job是否在被load的时候运行一次。
6.WorkingDirectory (string)
用来指定一个工作目录
7.StandardOutPath (string)
设置一个定时任务的日志输出目录。
8.Debug (boolean)
这个可选键指定 launchd 在处理这个Job时,应将其日志掩码临时调整为 LOG_DEBUG。
Example
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
http://www.apple.com/DTDs/PropertyList-1.0.dtd >
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.exampled</string>
<key>ProgramArguments</key>
<array>
<string>exampled</string>
</array>
<key>KeepAlive</key>
<true/>
</dict>
</plist>