mac系统设置定时任务,mac定时任务 命令行
Launchctl是一个统一的服务管理框架,可以启动、停止和管理守护进程、应用程序、进程和脚本。
Launchctl通过配置文件指定执行周期和任务。
当然mac也可以像linux系统一样使用crontab命令添加调度任务,这里就不赘述了。详情请参考:OS X添加调度任务。
下面教你如何在mac上创建一个预定任务。(任务目标:每晚10: 00执行/Users/demo/helloworld.py的python程序)
1.创建run.sh脚本。
输入helloworld.py程序所在的目录。
CD/用户/演示
创建run.sh脚本
vi run.sh
添加helloworld.py命令
#!/hldxlc/sh
#记录开始时间
回显“日期”/用户/演示/日志
#输入helloworld.py程序所在的目录。
CD/用户/演示
#执行python脚本(注意之前要指定python运行时环境/usr/hldxlc/python,根据自己的情况更改)
/usr/hldxlc/python hello world . py
#运行完成
回显“完成”/用户/演示/日志
:wq保存退出
请注意,应该将脚本更改为可执行权限。
chmod 777 run.sh
2.写入plist文件
Launchctl将根据plist文件的信息启动任务。
Plist脚本通常存储在以下目录中:
/library/launch daemons——只要系统启动,即使用户没有登录系统也会执行。
/library/launch agents-只有当用户登录到系统时才会执行。
更多plist存储目录:
~/Library/LaunchAgents用户自己定义的任务项
/library/launchagentsTask管理员为用户定义的项目。
/Library/LaunchDaemons管理员定义的守护程序任务项目
/system/library/launchagentsTask Mac OS X为用户定义的项目
由MAC OS X定义的/System/Library/LaunchDaemons守护进程任务项目。
转到~/Library/LaunchAgents并创建一个plist文件com.demo.plist
标签
com.demo.plist
程序参数
/user/demo/run . sh
StartCalendarInterval
分钟
00
小时
22
标准输出路径
/user/demo/run . log
标准错误路径
/user/demo/run . err
3.加载命令
launchctl load -w com.demo.plist
任务已成功加载。
更多命令:
#加载任务,-w选项将覆盖plist文件中的无效键。建议添加
$ launchctl load -w com.demo.plist
#删除任务
$ launch CTL unload-w com . demo . plist
#检查任务列表并使用grep“任务部分名称”进行过滤。
$ launchctl list grep com.demo
#开始任务
$ launchctl start com.demo.plist
#结束任务
$ launchctl stop com.demo.plist
如果任务被修改,必须先卸载再装载。
Start可以测试任务,无论时间是否到了,任务都会立即执行。
在启动和卸载之前,必须加载任务,否则将报告错误。
Stop可以停止任务。
饭片
Plist支持两种配置执行时间的方式:
StartInterval:指定脚本执行的频率(秒);
StartCalendarInterval:您可以指定脚本将执行多少分钟、小时、天、星期几和月份,类似于crontab中的设置,包括以下键:
分钟
将运行该作业的分钟。
小时
将运行该作业的小时。
一天
该作业将运行的日期。
工作日
将运行该作业的工作日(0和7是星期日)。
月
将运行该作业的月份。
Plist零件参数描述:
标签:对应的需要保证全局唯一性;
Program:要运行的程序;
ProgramArguments:命令语句
StartCalendarInterval:运行时间。dict用于单个时间点,array用于多个时间点。
StartInterval:时间间隔,其中之一与StartCalendarInterval一起使用。单位是秒。
标准输入和输出错误文件。在这里,建议不要使用。log为后缀,不会打开里面的信息。
定期启动任务时,如果涉及网络,但电脑处于睡眠状态,则无法执行。这时候定时启动屏幕就好了。
更多参数请参考mac官方文档。
参考:
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。