macOS下的crontab定时任务和Linux略有不同,它是由launchctl
来管理的。
首先查看服务是否运行
sudo launchctl list | grep cron
一般会输出
11782 0 com.vix.cron
或
- 0 com.vix.cron
接下来查看启动项的配置:
locate com.vix.cron
如果提示database不存在,按照提示步骤创建一个:
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
查看配置项
cat /System/Library/LaunchDaemons/com.vix.cron.plist
过个几分钟再次执行
locate com.vix.cron
如果输出/System/Library/LaunchDaemons/com.vix.cron.plist
表示启动项已配置好了。
最后检查下/etc/crontab
文件是否存在,如果不存在则创建
sudo touch /etc/crontab
这些都检查完之后就可以通过crontab -e
创建任务了。
PS:在macOS 10.15 Catalina以上的系统上,由于权限升级,还需要给cron
添加完全磁盘访问权限,不然定时任务还是无法执行。
具体方法,先打开系统偏好设置->隐私->完全磁盘访问权限
,左下角解锁。然后打开Finder,菜单栏前往->前往文件夹
,输入/usr/sbin
,找到cron
,把它拖到完全磁盘访问权限的列表中。