mac linux 计划任务,Mac上,执行定时任务:launchctl

在Mac上定时执行任务

在Mac上,执行定时任务,有两种方式:

使用launchctl

沿袭Linux常用的crontab命令

毕竟咱是在mac上开发,这里只讲launchctl的用法

1.首先需要编写plist文件

下图是我的一个很简单的任务plist文件:

602929418e4240f63a693a208a0c4ced.png

可以使用plutil -lint来验证plist的格式是否正确(这只是代表plist格式正确,不代表里面的命令是有效的)

plist文件里具体的key可以参考:

2.定时脚本

上图使用的定时脚本为test.sh,以下为文件内容:

#!/bin/sh

say hello world

上面的脚本会让电脑发声“hello world”,记得打开电脑音量~

注意:

你需要将test.sh置为可执行文件,可用命令:chmod a+x test.sh。

否则的话,脚本就根本不可能执行的。网上很多文章都没强调这一点

你也可以使用ls -l看看test.sh是否可执行(拥有x权限),如下图:

516c4a9666e2fcc0a4ed828d778542d3.png

3. plist文件放置处:

~/Library/LaunchAgents 由用户自己定义的任务项

/Library/LaunchAgents 由管理员为用户定义的任务项

/Library/LaunchDaemons 由管理员定义的守护进程任务项

/System/Library/LaunchAgents 由Mac OS X为用户定义的任务项

/System/Library/LaunchDaemons 由Mac OS X定义的守护进程任务项

建议放在 ~/Library/LaunchAgents 下面。

下面再来理解几个基础概念:

/System/Library和/Library和~/Library目录的区别?

/System/Library目录是存放Apple自己开发的软件。

/Library目录是系统管理员存放的第三方软件。

~/Library/是用户自己存放的第三方软件。

LaunchDaemons和LaunchAgents的区别?

LaunchDaemons是用户未登陆前就启动的服务(守护进程)。

LaunchAgents是用户登陆后启动的服务(守护进程)。

4.加载命令

最常使用的命令:

加载任务 launchctl load -w ***.plist ;-w选项会将plist文件中无效的key覆盖掉,建议加上

删除任务 launchctl unload -w ***.plist

查看任务列表 launchctl list;列表会显示很多任务,建议过滤一下:launchctl list | grep '任务的部分名字'

5.题外话

我在用 launchctl 或者 crontab 遇到同样的问题:

比如我的 launchctl 里面加载了脚本test.sh

test.sh 脚本的内容:

#!/bin/bash

svn status | xargs echo

echo "out: 输出正确的中文"

在使用在launchctl 定时执行test.sh脚本的输出:

svn st | xargs echo: 这行输出如果有中文,中文部分乱码;

echo "out: 输出正确的中文": 这行会输出正确的中文

这里面就是编码的问题,之后我参考了下面的文章:

前段时间一直为linux下的SVN邮件通知乱码而发愁,苦苦寻找了2个星期最终发现自己果然很白。。不知道是问题太简单了还是别的原因,,一直没有在网上找到解决的相关方法和资料(大部分都是windows下的配置,可是额D是linux哇)。下面是解决方法,希望对和我一样郁闷的人有帮助

之前有人说修改/etc/profile 加入环境量变,这个只能修改邮件本身的乱码问题,不能修正log diff中的乱码,乱码的原因是在svn调用post-commit的时候没有定义变量造成的,svn和crontab是无视系统默认变量的(=。=!!)。需要在post-commit中加入

#!/bin/sh

LANG=en_US.UTF-8

export LANG

之后svn或者crontab在调用的时候就可以正常输出中文了 编码可以按自己的情况进行修改~

按照里面的说明,将test.h脚本文件修改如下:

#!/bin/bash

LANG=en_US.UTF-8

export LANG

svn status | xargs echo

echo "out: 输出正确的中文"

设置了编码之后,所有的输出立马就正常了。

6.参考:

感兴趣的,想深入研究的,建议看看文章

苹果官方文档:

alvinalexander.com上的文章:

其他:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值