如何在 OS X 启动时运行 Automator 操作、shell 脚本或 AppleScript?

如何在 OS X 启动时运行 Automator 操作、shell 脚本或 AppleScript?

我知道您可以在 Mac 启动时运行应用程序,但是您可以在启动时运行 Automator 操作、服务、shell 脚本或 AppleScript 吗?

我也知道您可以将所有这些保存为应用程序,但我不希望它在 Dock 中打开。

答案1

首先,登录不同于启动。这个答案假设你的意思是登录,正如你显然提到的那样,能够按照配置启动程序系统偏好设置 » 用户和群组


使用命令行实用程序运行 Automator 脚本automator,使用 AppleScripts 运行osascript。他们的man页面详细解释了用法。

您可以设置登录钩子,但是它已经过时并且已被弃用,取而代之的是launchd

您可以创建launchd通过将 XML 配置文件放在~/Library/LaunchAgents目录中来配置作业。此站点包含相当多的相当简单的示例,您可以查看/System/Library/LaunchAgents系统提供的launchd作业的示例。您需要RunAtLoad的指令launchd


您仍然可以将 AppleScript 和 Automator 脚本保存为应用程序,并以应用程序的形式运行它们。要将它们从 Dock 中隐藏,请编辑它们的Contents/Info.plist文件并添加LSUIElement指令如上所述这里。这将隐藏其 Dock 图标和菜单。

答案2

您可以将这样的属性列表保存为~/Library/LaunchAgents/some.label.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN
http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>some.label</string>
    <key>ProgramArguments</key>
    <array>
        <string>automator</string>
        <string>/path/to/example.workflow</string>
        <!-- <string>osascript</string>
        <string>/path/to/example.scpt</string> -->
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

必须先通过运行launchctl load ~/Library/LaunchAgents/some.label.plist或注销并重新登录来加载它。

相关内容