iOS数据转换

Mac设置自启动以及定时任务

2017-12-05  本文已影响35人  GiantForJade

Mac设置开机启动项

由于最近使用到开机自启动以及定时任务的开启,在采坑的同事记录一下Mac自启动的以及定时任务开启的正确姿势

Mac 开机自启动以及定时任务设置方式

launchctl加载plist文件

Mac开机启动大部分会使用launchctl加载文件,launchctl 通过 plist 属性列表(Property List)配置。

plist文件位置以及相关权限

~/Library/LaunchAgents 由用户自己定义的任务项
/Library/LaunchAgents 由管理员为用户定义的任务项
/Library/LaunchDaemons 由管理员定义的守护进程任务项
/System/Library/LaunchAgents 由Mac OS X为用户定义的任务项
/System/Library/LaunchDaemons 由Mac OS X定义的守护进程任务项

LaunchDaemons和LaunchAgents的区别?

LaunchDaemons是用户未登陆前就启动的服务,即开机即可启动
LaunchAgents使用户登陆后启动的服务

具体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>Label</key>
    <string>cn.GY.tasklogout</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Applications/ATSign.app/Contents/MacOS/ATSign</string>
    </array>
    <key>StartCalendarInterval</key>
    <dict>
              <key>Minute</key>
              <integer>30</integer>
              <key>Hour</key>
              <integer>9</integer>
              <key>Day</key>
            <integer>1</integer>
            <key>Month</key>
            <integer>5</integer>
            <!-- 0和7都指星期天 -->
            <key>Weekday</key>
            <integer>0</integer>
        **<key>Minute</key>
        <string>01</string>
        <key>Hour</key>
        <string>18</string>**
    </dict>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

注意: 在--区间的设置时间点的plist的key,此处必须为integer,而非string,刚开始使用string会造成app一直无限自启动,后来查文档发现是integer,才解决了这个问题。

部分键值说明

Mac通过launchctl加载plist的相关命令

plutil ~/Library/LaunchAgents/demo.plist
launchctl load ~/Library/LaunchAgents/demo.plist
launchctl unload ~/Library/LaunchAgents/demo.plist
launchctl list 所有服务
launchctl list | grep demo 过滤后的服务
launchctl unload
launchctl load

crontab执行脚本文件等

编辑自定义自己的任务

 crontab -e
 13 15 * * *  /usr/local/bin/python2.7  
 /Users/macprohz/Desktop/Python/WebAppDemo/GY.py

添加编辑wq保存即可, 以上代表意义:在15:30分启动python脚本GY.py

时间格式

 *      *      *     *      *   command
 分     时      日    月     周    命令

第1列表示分钟1~59 每分钟用或者 /1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
5个*表示每分钟
*表示每分钟/时/日/月/周
/n表示每隔n分钟/时/日/月整/周
每个时间位多个数值用逗号隔开:
* * * 0,1,2,3,4,5就表示除了周六以外的每一分钟

     “*”代表取值范围内的数字,

     “/”代表”每”,

     “-”代表从某个数字到某个数字,

     “,”分开几个离散的数字

crontab的一些终端命令

ps aux | grep cron :查看服务是否已经运行用 
crontab -e:编辑当前用户crontab任务,保存退出后自动加到crontab列表中执行 
crontab -l :查看当前用户所有crontab 列表 
crontab -r :删除当前用户所有crontab 列表

总结:此文仅为记录Mac下的启动方式,防止个人用到时又要无休止的goole,大部分资源还是很早之前的,特此记录(GiantForJade)。

参考文献
launchctl
crontab

上一篇 下一篇

猜你喜欢

热点阅读