mac定时任务执行shell脚本运行jar包

1.背景:想用定时任务执行某个脚本然后实现定时发送钉钉机器人消息;

2.构思:楼主是做Android开发的,由于不太懂phyon脚本,便想着用java来构建jar包并用shell脚本执行,然后用系统自带的定时任务执行shell脚本

1.定时任务实现

查阅了资料,发现mac下并没有像Windows那样直接创建定时任务的功能,不过还是有解决方案的,接下里主角launchctl登场,

launchctl:launchctl是一个统一的服务管理框架,可以启动、停止和管理守护进程、应用程序、进程和脚本等。launchctl是通过配置文件来指定执行周期和任务的。mac下可把任务信息配置在plist上由launchctl读取

1.1 编写plist文件

launchctl 将根据这个plist文件的信息来启动任务,plist文件中的关键字可以在 苹果官方文档 找到,值得注意的是 Label 对应的值需要保证唯一性,作为任务的唯一标示。可以使用如下命令来验证plist格式的正确性(不代表命令有效):

$ plutil-lint /Users/denglibing/Library/LaunchAgents/com.dingroot.checkin.plist

这个是一个完整的 plist 文件:

```

Label

com.taojiji.tapd.plist

ProgramArguments

/Users/xiaozhuzhu/Library/LaunchAgents/tapd.sh

StandardErrorPath

/Users/xiaozhuzhu/Library/LaunchAgents/tapd/tapd.err

StandardOutPath

/Users/xiaozhuzhu/Library/LaunchAgents/tapd/run.log

StartCalendarInterval

Hour

15

Minute

30

Weekday

1

Hour

15

Minute

30

Weekday

2

Hour

15

Minute

30

Weekday

3

Hour

15

Minute

30

Weekday

4

Hour

15

Minute

30

Weekday

5

```

你可能感兴趣的:(mac定时任务执行shell脚本运行jar包)