blog

当前位置:首页>文章中心>blog
mac下定时运行程序
blog 2016-04-28 1 阅读

mac下定时运行程序

小泥巴 小泥吧科技 2016-04-28
在linux下执行定期任务可以使用crontab,目前mac os也可以使用它,不过已不推荐使用。推荐做法是采用plist脚本,plist脚本可以设置执行的动作,时间间隔等其他一些信息。另外crontab的最小时间间隔是一分钟,使用plist脚本原则上时间间隔可以为一秒。 plist脚本存放路径为/Library/LaunchDaemons或/Library/LaunchAgents,其区别是后一个路径的脚本当用户登陆系统后才会被执行,前一个只要系统启动了,哪怕用户不登陆系统也会被执行。 可以通过两种方式来设置脚本的执行时间。一个是使用StartInterval,它指定脚本每间隔多长时间(单位:秒)执行一次;另外一个使用StartCalendarInterval,它可以指定脚本在多少分钟、小时、天、星期几、月时间上执行,类似如crontab的中的设置。 一个简单例子如下:



    Label
    com.yangyz.cron.test.plist
    ProgramArguments
    
        /Users/yangyz/plist-test.sh
    
    KeepAlive
    
    RunAtLoad
    
    StartInterval
    60

其中key是plist脚本定义的属性,紧跟着的下一行是该属性对应的值。上述脚本是每间隔60秒执行一次/Users/yangyz/plist-test.sh这个shell脚本,也可以使用StartCalendarInterval来替换StartInterval达到同样的效果,例如:
StartCalendarInterval

  Minute
  0
上述设置的意思为每天的每个小时的第0分钟执行,也即使每60秒执行一次。 plist脚本中定义的属性以及具体的含义,可以参看苹果官方网站的说明,地址为:launchd.plist(5) Mac OS X Manual Page launchctl命令可以控制plist脚本停止或重新加载。例如:
停止脚本com.yangyz.cron.test.plist运行
launchctl unload /Library/LaunchDaemons/com.yangyz.cron.test.plist

启动脚本com.yangyz.cron.test.plist运行
launchctl load /Library/LaunchDaemons/com.yangyz.cron.test.plist
如果执行上面命令看到launchctl: Dubious ownership on file (skipping): /Library/LaunchDaemons/com.yangyz.cron.test.plist这样的错误,其原因是该脚本的owner和当前执行操作用户不一致。使用chown修改一下即可。 想着操作命令:
launchctl load   com.xiaoniba.launchctl.plist
launchctl unload com.xiaoniba.launchctl.plist
launchctl start  com.xiaoniba.launchctl.plist
launchctl stop   com.xiaoniba.launchctl.plist
launchctl list
参考资料: http://www.devdaily.com/mac-os-x/launchd-plist-examples-startinterval-startcalendarinterval http://www.devdaily.com/mac-os-x/mac-osx-startup-crontab-launchd-jobs
 原文链接:http://www.netingcn.com/mac-os-plist.html
相关标签:

发表评论:

评论记录:

未查询到任何数据!
QQ咨询
回电话
回拨通话

我们稍后回拨您的电话

座机请加区号

微信联系
微信扫一扫
微信二维码

扫码加微信