Mac定时任务launchctl常用key

908 阅读1分钟

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>

参考文档

Launch Daemons