# 在Mac里有一个命令行工具叫做:launchctl,

可以用来控制服务的自动启动或者关闭。一般的语法是

sudo launchctl load /path/to/service.plist

sudo launchctl unload /path/to/service.plist

# 一般plist文件放在这j几个地方:

  • /Library/LaunchDaemons/ 由管理员定义的守护进程任务项
  • /Library/LaunchAgents/ 由管理员为用户定义的任务项
  • ~/Library/LaunchAgents/ 由用户自己定义的任务项

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

你可以写一个plist文件放到~/Library/Launch Agents/下面,文件里描述你的程序路径和启动参数,那么这个用户登录时就会启动这个程序了,而且是杀不了的哦 被杀了之后会自动重新启动 如果需要把它停止的话,运行一下命令 launchctl unload ~/Library/Launch Agents/com.your company.porduct 如果放到/Library/Launch Agents/下面的话,就是一开机就启动哦~

Launchctl :控制OS X系统里的启动进程(launch)

# 执行定时脚本|设置开机启动步骤

(1)编写执行脚本 通常brew在安装软件时brew为我们自动生成。 (2)去对应的目录下建立plist文件 (3)加载服务

说明:Agents文件夹下的plist是需要用户登录后,才会加载的,而Daemons文件夹下得plist是只要开机,可以不用登录就会被加载

# 加载/卸载服务

cd 进入指定 plist 文件 目录 launchctl load *.plist #加载 launchctl unload *.plist #取消 launchctl list #查看服务

# 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>
<!-- Label唯一的标识 -->
<key>Label</key>
<string>com.demo.plist</string>
<!-- 指定要运行的脚本 -->
<key>ProgramArguments</key>
<array>
<string>/Users/demo/run.sh</string>
</array>
<!-- 指定要运行的时间 -->
<key>StartCalendarInterval</key>
<dict>
<key>Minute</key>
<integer>00</integer>
<key>Hour</key>
<integer>22</integer>
</dict>
<!-- 工作目录 -->
<key>WorkingDirectory</key>
<string>/Users/felix/vuepress-felix</string>
<!-- 标准输出文件 -->
<key>StandardOutPath</key>
<string>/Users/demo/run.log</string>
<!-- 标准错误输出文件,错误日志 -->
<key>StandardErrorPath</key>
<string>/Users/demo/run.err</string>
</dict>
</plist>