launchctl

2022-01-28/2022-01-28
0 评论 105 浏览

参考文档:
Mac设置开机启动
Mac中的定时任务利器:launchctl
Mac--Launchctl介绍

launchctl 是什么?

控制 macos 系统的启动程序,可以用来控制服务的自动启动或者关闭,类似于 linux 的 systemctl。

plist 是什么

文件类型,在 mac 中类似于 linux 的 desktop 文件。

一般放置在这几个地方

1~/Library/LaunchAgents 由用户自己定义的任务项, 我们使用这个即可
2/Library/LaunchAgents 由管理员为用户定义的任务项
3/Library/LaunchDaemons 由管理员定义的守护进程任务项
4/System/Library/LaunchAgents 由Mac OS X为用户定义的任务项
5/System/Library/LaunchDaemons 由Mac OS X定义的守护进程任务项

plist 目录结构

通过命令

1man launchd.plist

可以查看 plist 的语法。

 1<?xml version="1.0" encoding="UTF-8"?>
 2<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 3<plist version="1.0">
 4  <dict>
 5    <!-- Label唯一的标识,必须 -->
 6    <key>Label</key>
 7    <string>com.demo.plist</string>
 8    <!-- 指定要运行的脚本,必须 -->
 9    <key>ProgramArguments</key>
10    <array>
11      <string>/Users/demo/run.sh</string>
12      <string>start</string>
13    </array>
14    <!-- 指定要运行的时间,可用作定时任务 -->
15    <key>StartCalendarInterval</key>
16    <dict>
17      <key>Minute</key>
18      <integer>00</integer>
19      <key>Hour</key>
20      <integer>22</integer>
21    </dict>
22    <!-- 标准输出文件 -->
23    <key>StandardOutPath</key>
24    <string>/Users/demo/run.log</string>
25    <!-- 标准错误输出文件,错误日志 -->
26    <key>StandardErrorPath</key>
27    <string>/Users/demo/run.err</string>
28  </dict>
29</plist>

加载命令

1# 加载任务, -w 可以让 disable 的服务变成 enable 状态
2$ launchctl load -w com.demo.plist
3
4# 删除任务
5$ launchctl unload -w com.demo.plist
6
7# 查看任务列表
8$ launchctl list
评论
发表评论
       
       
取消