macos开机自动执行自定义脚本

背景

每次开机都需要执行一下idea破解脚本,比较麻烦,所以写个脚本丢给OS,开机后自动执行,这样以后就不用每次手动执行了。

自动加载原理

  • macOS会在每次启动时自动加载~/Library/LaunchAgents/目录下的.plist文件。
  • 如果你不想手动加载服务,只需将.plist文件放置在该目录下即可。
  • 系统会根据RunAtLoad键的值()在启动时运行指定的脚本。

1. 创建.plist配置文件

创建一个.plist文件,并将其保存到~/Library/LaunchAgents/目录下。例如,文件名为com.example.myscript.plist。

bash 复制代码
nano ~/Library/LaunchAgents/com.example.myscript.plist

在文件中添加以下内容:

xml 复制代码
<?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>
    <key>Label</key><string>com.example.myscript</string>
    <key>Program</key<string>/Users/uhomepath/Downloads/IDEA/scripts/install.sh</string>
    <key>RunAtLoad</key><true/>
</dict>
</plist>
  • Label:服务的唯一标识。
  • Program:指定要运行的脚本路径。
  • RunAtLoad:表示在系统启动时运行脚本。

2. 确保脚本文件具有可执行权限

确保你的脚本文件(install.sh)具有可执行权限:

bash 复制代码
chmod +x /Users/uhomepath/Downloads/IDEA/scripts/install.sh

3. 加载服务

虽然系统会在启动时自动加载~/Library/LaunchAgents/目录下的.plist文件,但为了确保服务立即生效,你可以在第一次配置完成后手动加载它:

bash 复制代码
launchctl load ~/Library/LaunchAgents/com.example.myscript.plist

4. 验证服务是否生效

bash 复制代码
launchctl list | grep com.example.myscript

如果看到服务,说明服务已成功加载。

5. 如何禁用服务

如果需要禁用该服务,可以运行以下命令:

bash 复制代码
launchctl unload ~/Library/LaunchAgents/com.example.myscript.plist
相关推荐
做萤石二次开发的哈哈3 小时前
开发者如何调用 ERTC iOS API 完成 SDK 初始化配置?
macos·objective-c·cocoa
AUV11075 小时前
Mac 录屏自动缩放怎么设置才不乱跳:自动片段、固定区域与鼠标跟随调试
macos·计算机外设
程序员良辰7 小时前
【Mac快速切换JDK】Mac 使用 Homebrew + jenv 快速切换 JDK 版本
java·开发语言·macos
coding4u1 天前
Mac 外接显示器完全指南:从插上线到调好每个参数
macos·计算机外设·文件管理·显示器·策略模式·quick look扩展
zhyf1191 天前
(Mac)Homebrew部署Obsidian+Claudian+Excalidraw
macos
chuan.bai1 天前
Java RAG 实战(第 3 篇):从交互式聊天到多轮上下文
java·人工智能·macos·ai
Chennn__1 天前
开源项目:Recorder — 本地离线 macOS 录音转文字(通用/课堂/雅思,可选 Ollama)
macos
AUV11071 天前
录系统声音用什么 Mac 录屏软件:双音源到成片的五层验收
macos
chuan.bai1 天前
Java RAG 实战专栏导读:从零跑通 Ollama + Qdrant + Spring Boot 知识库
java·人工智能·macos·ai
向阳是我1 天前
两台 Mac 远程共享屏幕最佳方案:Tailscale + macOS 原生屏幕共享
macos