在linux下可以用crontab来定时执行任务,在mac下可以用launchctl来定时执行任务
我们使用launchctl来做一个定时执行任务的例子
首先做一个可执行的脚本,脚本名字叫做:
run123.sh,脚本的功能就是在/Users/alecyan/Downloads/目录下建一个文件,脚本要改成可执行的权限
chmod 777 run123.sh
脚本代码如下:
cd /Users/alecyan/Downloads/
touch abcabc123.txt
然后进入到~/Library/LaunchAgents下建一个plist文件,这个就是糸统执行任务时要使用的文件
文件名叫com.alecyan.testcron.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>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分的时候执行一下脚本
然后就可以用下面的几个命令进行操作我们做好的任务了
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这个下面
参考博客:
http://blog.jeffean.net/blog/2010/08/30/mac-os-shi-yong-launchd-kong-zhi-daemon/
http://blog.hebine.com/archives/tag/launchd
http://nathangrigg.net/2012/07/schedule-jobs-using-launchd/
http://www.zhoumingzhi.com/2013/04/05/macos%E7%9A%84launchd%E4%BD%BF%E7%94%A8/
https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man5/launchd.plist.5.html这里是plist里的参数的具体说明
分享到:
相关推荐
基于launchctl+fastlane的iOS定时自动打包任务
使用macOS的launchctl守护程序管理器管理后台服务。 要求 用于安装服务。 这在Linux上不能(也不能)与Homebrew一起使用(请不要提交Linux问题)。 安装 首次运行时会自动安装brew services 。 用法 请参阅或“ ...
在“ros 定时自动绑定mac”的场景下,我们主要讨论如何在MacOS操作系统上设置ROS定时任务来自动连接到特定的MAC地址,这可能是为了确保机器人系统在特定时间自动与特定设备通信。 首先,我们需要了解在MacOS中如何...
工具方面,有一些专门用于管理和控制自动启动程序的应用,比如Windows的任务管理器和计划任务,Linux的`systemctl`和`crontab`,以及Mac的`launchctl`。这些工具可以帮助用户查看、添加、修改和删除自动启动项,方便...
Mac OS 的守护进程启动管理休斯顿是流行的 Go计划的一个港口。用法有关完整的使用指南,请参阅文档。支持的命令其中“支持”表示带有或不带有任何类型的用户错误处理的基本支持。 ls [-l] [模式] 显示 [图案] 编辑 ...
在plist文件中定义好关机的命令,然后使用`launchctl load`加载这个配置。或者,用户也可以使用内置的“节能”设置,选择“电源适配器”或“电池”下的“计划休眠”选项。 5. 第三方软件: 除了操作系统内置的功能...
lunchy一个友好的launchctl包装
使用brew install mongo并按照启动选项的说明进行操作MongoDB OSX Snow Leopard Launchctl 项目配置 MongoDB 在 Mac OSX 系统启动时启动。蒙戈安装本指南假设您已经使用 MacPorts 安装了 mongo,如下所示: sudo ...
因为lunchy 不能同时启动/停止/重启多个LaunchAgents,你需要运行多个命令来实现这一点。 (来自午餐描述)你不讨厌 OSX 的 launchctl 吗? 你必须给它确切的文件名。 与 Linux 漂亮、简单的 init 系统和过于冗长...
本案例将探讨如何在Mac上设置一个开机启动的守护进程,并且这个守护进程能够接收远程命令,以启动和控制Cocoa应用程序。我们将主要关注以下几个方面: 1. **Mac OS X的LaunchDaemons** Mac OS X系统使用...
节点启动控制 为 launchctl 命令提供本机绑定 注意 由于 OS X 10.10 的...警告:这将安装 n 并更改您的节点版本,因此请谨慎使用 $ npm run test-versions 应用程序接口 去做 使API更完整 贡献 请随意分叉/贡献:]
在本指南中,我们将深入探讨如何在Mac操作系统上安装并配置MySQL数据库...通过以上详细指南,你应该能够顺利地在你的Mac系统上建立一个运行良好的MySQL环境。如果你遇到任何问题,建议查阅官方文档或在线社区寻求帮助。
首次连接Yubikey时, launchctl将运行yubikeylockd守护程序,该守护程序将仅监视Yubikey USB设备的状态。 守护程序基于Apple为IOKit开发提供的示例。 它有两件事: 连接设备后,它将通过...
在Mac操作系统中,设置Redis服务器开机自启动是一个实用的操作,特别是在你需要持续运行Redis服务的情况下。以下是如何在Mac上实现这一目标的详细步骤: 首先,理解macOS的launchd系统是关键。launchd是苹果操作...
Tomcat是Apache软件基金会的一个开源项目,它是一个流行的Java Servlet容器,用于部署和运行Java web应用程序。 【描述】:尽管描述部分为空,但我们可以推断,这个教程可能涵盖了在Mac OS环境下配置Tomcat自动启动...
在Mac操作系统上安装和使用Redis非常便捷,本文将详细介绍如何在Mac环境下配置和运行Redis。 首先,你需要了解Redis的基本概念。Redis是Remote Dictionary Server(远程数据字典服务器)的缩写,它是一个基于内存的...
使用 sublime text 打开文件夹,将 my_username、my_password 批量替换成自己的 cd /etc/postfix && sudo postmap sasl_passwd generic sd_relayhost sender_...你的Mac mail命令就可以使用126的smtp发送邮件了
3. **tuntap**:Tuntap是Linux和Mac OS X下的虚拟网络设备驱动程序,允许用户空间应用程序直接与网络堆栈交互,模拟网络接口。在IPv6场景中,tuntap常用于创建隧道,如6to4或Teredo隧道,以便在不支持IPv6的网络上...
5. **启动和管理服务**:使用`pg_ctl`或`launchctl`来启动、停止或监控PostgreSQL服务。在Mac上,PostgreSQL通常会作为系统服务自动启动。 6. **安全设置**:默认情况下,PostgreSQL不允许远程连接,为了安全,建议...
本篇文章将详细介绍如何在Mac上安装并配置MySQL 8.0,以供日常开发或学习使用。 首先,我们需要了解MySQL 8.0是目前最新的MySQL版本,它提供了诸多性能提升、安全改进和新特性,比如窗口函数、JSON增强以及更强大的...