MacOS 如何创建开机启动脚本

如何创建开机启动脚本

在 macOS 上,可以通过创建一个特定的脚本文件来实现开机启动脚本。以下是一些步骤来执行此操作:

  1. 创建脚本文件:使用你喜欢的文本编辑器创建一个新文件,将其中包含要在开机时运行的脚本代码。
  2. 添加执行权限:在终端中,使用 chmod +x 命令为你的脚本文件添加执行权限。例如,如果你的脚本文件名为 startup_script.sh,则可以运行以下命令:

    chmod +x startup_script.sh
  3. 移动脚本文件:将脚本文件移动到 /Library/LaunchDaemons 目录中。你需要拥有管理员权限才能进行此操作。例如,使用以下命令完成:

    sudo mv startup_script.sh /Library/LaunchDaemons/
  4. 设置脚本的拥有者和组:为了确保脚本在开机时能够正确地启动,你需要将其拥有者和组设置为 root。使用以下命令:

    sudo chown root:wheel /Library/LaunchDaemons/startup_script.sh
  5. 创建一个属性文件:创建一个属性文件以告知系统如何在开机时运行你的脚本。在 /Library/LaunchDaemons 中创建一个新的属性文件,文件名以 .plist 结尾。例如,com.example.startup_script.plist
  6. 编辑属性文件:使用文本编辑器打开属性文件,并将以下内容粘贴到文件中,并根据需要进行修改:

    <?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.startup_script</string>
        <key>ProgramArguments</key>
        <array>
            <string>/Library/LaunchDaemons/startup_script.sh</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>KeepAlive</key>
        <false/>
    </dict>
    </plist>

    在上述代码中,确保将 com.example.startup_script 替换为你想要的标识符,并且 /Library/LaunchDaemons/startup_script.sh 替换为你实际的脚本文件路径。

  7. 设置属性文件的拥有者和组:使用以下命令设置属性文件的拥有者和组为 root

    sudo chown root:wheel /Library/LaunchDaemons/com.example.startup_script.plist
  8. 加载并启动脚本:使用以下命令加载属性文件,并启动脚本:

    sudo launchctl load /Library/LaunchDaemons/com.example.startup_script.plist

    这将使脚本在下次启动时自动运行。

请注意,如果你需要通过 GUI 运行脚本或需要特定用户环境的权限,可能需要使用其他方法来实现开机启动脚本。上述步骤仅是一个基本示例来帮助你开始。

适用什么版本的系统

上述步骤适用于 macOS 的较新版本,包括 macOS Mojave、macOS Catalina和 macOS Big Sur。这些版本的 macOS 使用 Launchd 作为系统的 init 系统,负责管理开机启动以及其他系统进程。

如果你使用的是较旧的 macOS 版本,例如 macOS Sierra 或更早的版本,可能使用的是旧的 init 系统(如init.d 或 rc.d)来管理开机启动脚本。在这种情况下,你需要使用相关的文档和方法来创建开机启动脚本。

请注意,每个 macOS 版本都有不同的启动脚本安装和管理方式,因此确保参考适用于你当前 macOS 版本的相关文档和指南。

以下可能是无用信息

在 macOS 中,可以使用 launchd 工具来创建开机启动脚本。以下是创建开机启动脚本的步骤:

  1. 打开终端应用程序。
  2. 创建一个新的启动代理文件,例如 com.example.startup.plist:
sudo vim /Library/LaunchAgents/com.example.startup.plist
  1. 在文件中添加以下内容:
<?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.startup</string>
 <key>ProgramArguments</key>
 <array>
  <string>/path/to/your/script.sh</string>
 </array>
 <key>RunAtLoad</key>
 <true/>
</dict>
</plist>

/path/to/your/script.sh 替换为您的脚本路径。

  1. 保存文件并退出编辑器。
  2. 启动代理:
launchctl load /Library/LaunchAgents/com.example.startup.plist
  1. 检查代理是否已启动:
launchctl list | grep com.example.startup

如果输出中包含代理名称,则表示代理已成功启动。

这样,每次启动 macOS 时,您的脚本都会自动运行。如果您想停止自动启动,可以使用以下命令:

launchctl unload /Library/LaunchAgents/com.example.startup.plist