mac使用launchctl定时运行程序
转载自 http://www.2cto.com/os/201305/215350.html
在linux下可以用crontab来定时执行任务,在mac下可以用launchctl来定时执行任务
我们使用launchctl来做一个定时执行任务的例子
首先做一个可执行的脚本,脚本名字叫做:
run123.sh,脚本的功能就是在/Users/alecyan/Downloads/目录下建一个文件,脚本要改成可执行的权限
chmod 777 run123.sh
脚本代码如下:
Java代码
cd /Users/alecyan/Downloads/
touch abcabc123.txt
然后进入到~/Library/LaunchAgents下建一个plist文件,这个就是糸统执行任务时要使用的文件
文件名叫com.alecyan.testcron.plist
文件内容如下:
Java代码
<?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>com.alecyan.testcron</string>
<key>ProgramArguments</key>
<array>
<string>/Users/alecyan/Downloads/run123.sh</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Minute</key>
<integer>4</integer>
<key>Hour</key>
<integer>13</integer>
</dict>
<key>StandardOutPath</key>
<string>/Users/alecyan/Downloads/abc.log</string>
<key>StandardErrorPath</key>
<string>/Users/alecyan/Downloads/abcerror.log</string>
</dict>
</plist>
简单的对这里边的内容说明一下,label这里就是给这个任务名个名字,这里一般取plist的文件名,这个名字不能和其它的plist重复。 run123.sh就是我们要执行的脚本,StartCalendarInterval里边的参数是说每一天13点4分的时候执行一下脚本
然后就可以用下面的几个命令进行操作我们做好的任务了
Java代码
launchctl load com.alecyan.testcron.plist
launchctl unload com.alecyan.testcron.plist
launchctl start com.alecyan.testcron.plist
launchctl stop com.alecyan.testcron.plist
launchctl list
要加载我们做好的plist文件,就是用上面的第一个命令load然,这个时候糸统就会在每天的13点4分执行我们的脚本
如果想去掉我们的定时任务就可以用unload命令
如果一个任务今天的13点4分执行过了,然后你改了,com.alecyan.testcron.plist里面的时间,比如说改到14点4分执行,必须unload之后再重新load一下,不然当天不会再执行这个命令
start可以测试任务,这个是立即执行,不管时间到了没有
stop可以停止任务
ok一个简单的定时任务就可以用了
深入的再说一下,其实,/Library/LaunchAgents这样的目录在mac下一般有三个,我们上面说的是当前用户的目录下的,还有 两个一个在/Library/LaunchAgents另一个在/System/Library/LaunchAgents/ 如果是不管哪一个用户都要定时执行的话,就要放在
/Library/LaunchAgents这个下面
相关推荐
DataFrame iloc练习.ipynb
plc
制造企业数字化中台(技术中台、数据中台、业务中台)建设方案.pptx
实验二 预习报告.docx
20240702作业1
浅谈PLC在自动洗车系统中的应用.doc
Lengstorf, Hansen, Prettyman -- PHP 8 for Absolute Beginners -- 2022
智慧校园建设是在国家政策推动下,为深化教育改革、提升教育质量和管理效率而提出的重要项目。该项目旨在通过信息化手段,解决传统教育中存在的资源分散、管理混乱等问题,实现教育资源的高效利用和教学质量的全面提升。 目前,教育信息化虽取得一定进展,但面临“孤岛架构”的挑战,包括硬件资源无法共享、数据孤岛、应用孤岛等问题,导致资源浪费和管理效率低下。为此,智慧校园的建设目标聚焦于家校沟通便捷化、校园管理科学化、校园生活轻松化、课堂教学互动化和校园设施智能化,以提高教学效率和学生学习体验。 智慧校园的核心价值在于构建先进的网络教学平台和管理信息系统,实现教学资源的高效配置和利用,促进师生互动,提高管理效率,降低成本,构建健康高雅的生活环境。解决方案涵盖综合应用平台规划、系统架构设计、媒体发布、数字会议系统等,通过后台服务层、基础接入层和用户接入层的有机结合,实现智慧校园的全面功能。 智慧校园管理平台作为核心组成部分,提供模块化体系,包括公开课、直播、教学资源等23大应用,支持与第三方接口对接,实现多级管理。电教预约管理平台通过移动端APP或web后台简化预约流程,提高教室和会议室资源利用率,支持会议预订、审批、信息发布和环境管控。 教育录播系统和云平台支持教师制作和分享优质教学资源,进行在线组卷和评卷,同时提供学生应用,如高清视频录制、在线直播和互动交流,促进教学资源的共享和教育均衡化发展。这些系统的整合应用,将极大地推动教育信息化进程,实现教育资源的最大化利用和教育质量的全面提升。
c#输出文字5行5列随机组合代码
制造集团企业供应链整体方案含数字化.pptx
皮带运输机PLC电气控制系统设计.doc
Солем -- Программирование компьютерного зрения на языке Python -- 2016
2022-2028全球与中国GaAs器件市场现状及未来发展趋势.docx
Reitz, Schlusser -- The Hitchhiker's Guide to Python -- 2016
当然可以!以下是一些JavaScript语言教程、案例和相关项目资源的推荐: 教程资源: MDN Web 文档:MDN提供了JavaScript的全面教程,包括语法、数据类型、函数、面向对象编程等内容。 JavaScript 教程 - 廖雪峰:廖雪峰的网站提供了简洁明了的JavaScript教程,适合初学者入门。 W3Schools JavaScript 教程:W3Schools是一个广为人知的Web开发教程网站,提供了丰富的JavaScript教程和示例。 案例资源: JavaScript30:由 Wes Bos 创作的免费 JavaScript 30 天挑战,每天一个小项目,涵盖了各种 JavaScript 技术和 API。 CodePen:CodePen是一个在线社区,提供了大量的前端开发案例,你可以在这里找到各种JavaScript项目的示例和代码。 相关项目资源: GitHub:GitHub是一个代码托管平台,你可以在上面找到各种JavaScript项目和库,可以通过搜索关键词来发现你感兴趣的项目。 Awesome JavaScript:这是一个GitHub仓库,收集
pycharm安装教程
数字化转型背景下的企业数据资产管理两份文件.pptx
C#输出2500进制2位数文字排列组合代码正确