# rime macos如何通过launchctl自动定时同步

**URL:** <https://forum.beginner.center/t/topic/2122>\
**Category:** 🛠工具与编程\
**Tags:** rime\
**Created:** [2025 年8 月 2 日 06:41 UTC](https://forum.beginner.center/t/topic/2122 "2025-08-02T06:41:42Z")\
**Posts on this page:** 1\
**Page:** 1

## AI 生成的摘要

[doggie](/t/-/2122/1) 提供了一种在 macOS 上使用 `launchctl` 自动定时同步 Rime 输入法的方法。首先，用户需要编写一个 shell 脚本，该脚本通过命令行执行 Rime 同步，用户将其存储在 `/Users/ww/Scripts/rime_auto_sync.sh`。脚本内容示例是使用 `Squirrel` 同步 Rime 输入法。然后，用户创建一个名为 `com.whitewatercn.rime.autosync` 的 plist 文件，以定期运行此脚本。plist 文件包含定时器设置，用于定义同步任务的执行时间，例如每天的 14:40。具体参数包括 `StartCalendarInterval`、`RunAtLoad` 等。plist 文件需存放在适当的目录下，例如 `~/Library/LaunchAgents` 或其他相关路径。详尽的目录位置和使用指南可参考网络资源中的几个网址如 [wu.run](https://wu.run/posts/mac-launchctl-guidance)。

<div class="post-metadata">

作者： ![doggie](https://forum.beginner.center/user_avatar/forum.beginner.center/doggie/32/550_2.png) [@doggie](https://forum.beginner.center/u/doggie)\
发布日期： [2025 年8 月 2 日 06:41 UTC](https://forum.beginner.center/t/topic/2122/1 "2025-08-02T06:41:42Z")

</div>

先创建sh脚本，实现通过命令行执行rime同步，我放在了 `/Users/ww/Scripts/rime_auto_sync.sh`

```auto
#!/bin/bash

# Required parameters:
# @raycast.schemaVersion 1
# @raycast.title rime同步 sync
# @raycast.mode silent

# Optional parameters:
# @raycast.icon 🤖

# Documentation:
# @raycast.author whitewatercn

echo "正在同步 Rime 输入法..."

/Library/Input\ Methods/Squirrel.app/Contents/MacOS/Squirrel --sync

```

然后在特定文件夹（详见下）创建plist文件（比如我的plist就叫 `com.whitewatercn.rime.autosync` ），实现定期执行上述脚本

```auto
<?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.whitewatercn.rime.autosync</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/bash</string>
        <string>/Users/ww/Scripts/rime_auto_sync.sh </string> #你的sh所在绝对路径
    </array>
    <key>StartCalendarInterval</key> #定时器， 具体怎么用详见下
        <dict>
        	<key>Hour</key>
        	<integer>14</integer>
        	<key>Minute</key>
        	<integer>40</integer>
    	</dict>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardOutPath</key>
    <string>/Users/ww/Scripts/rime_auto_sync.log</string> #执行日志所在路径，放哪都行
    <key>StandardErrorPath</key>
    <string>/Users/ww/Scripts/rime_auto_sync.err</string> #报错日志所在路径，放哪都行
</dict>
</plist>

```

# 定时器怎么用

`StartCalendarInterval` 标签代表指定时间点执行

| Key | Type | Values |
| --- | --- | --- |
| Month | Integer | Month of year (1..12, 1 being January) |
| Day | Integer | Day of month (1..31) |
| Weekday | Integer | Day of week (0..7, 0 and 7 being Sunday) |
| Hour | Integer | Hour of day (0..23) |
| Minute | Integer | Minute of hour (0..59) |

# plist可以放在哪里？

上述展示中，.plist 描述文件是存放在 `/Users/ww/Library/LaunchAgents/` 目录下，除了这个目录还可以存在其他位置：

| Type | Location | Run on behalf of |
| --- | --- | --- |
| User Agents | ~/Library/LaunchAgents | Currently logged in user |
| Global Agents | /Library/LaunchAgents | Currently logged in user |
| Global Daemons | /Library/LaunchDaemons | root or the user specified with the key UserName |
| System Agents | /System/Library/LaunchAgents | Currently logged in user |
| System Daemons | /System/Library/LaunchDaemons | root or the user specified with the key UserName |

# 参考

- [Mac 下的定时任务工具：Launchctl | 吴润写字的地方](https://wu.run/posts/mac-launchctl-guidance)
- [利用 macOS 自动化脚本和cron定时任务提升生产力](https://notion-b-sigma.vercel.app/automation%20in%20macos)
- [如何在 MacOS 创建定时任务和提醒事项 | Kencow Space](https://kencow.github.io/2019/10/08/macos-cron-reminder-and-calender-event/)
