Mac上定时运行脚本工具--launchctl

在Mac上可以像在Linux上一样,使用crontab来定时运行脚本,但苹果并不推荐这个方法。苹果推荐使用Launchctl来完成定时任务。

 

首先,我们先写一个可执行的脚本,列子为php脚本,名字为test.php.

 

其次,要到相对应的目录下面建立plist文件。

一共有5个文件夹,差别在于,Agents文件夹下的plist是需要用户登录后,才会加载的,而Daemons文件夹下得plist是只要开机,可以不用登录就会被加载

 

然后,我们编写plist文件

<?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>Disabled</key>
    <false/>
    <key>KeepAlive</key>
    <false/>
    <key>Label</key>
    <string>com.ryan.test</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/php</string>
        <string>/Users/Ryan/Zend/workspaces/DefaultWorkspace/test/test.php</string>
    </array>
    <key>RunAtLoad</key>
    <false/>
    <key>StandardErrorPath</key>
    <string>/Users/Ryan/Documents/test_log/stderr</string>
    <key>StandardOutPath</key>
    <string>/Users/Ryan/Documents/test_log/stdout</string>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>15</integer>
        <key>Minute</key>
        <integer>5</integer>
    </dict>
</dict>
</plist>

 

最后,我们需要load写好的plist文件

launchctl load -w /Library/Daemons/com.ryan.test.plist    // 加载

launchctl unload -w /Library/Daemons/com.ryan.test.plist    // 卸载

 

参考文档地址:http://launchd.info

工具地址:http://www.soma-zone.com/LaunchControl/

 

posted @ 2014-05-13 13:58  RYan~~  阅读(5132)  评论(0编辑  收藏  举报