web-dev-qa-db-ja.com

OS Xの起動時にAutomatorアクション、シェルスクリプト、またはAppleScriptを実行するにはどうすればよいですか?

Macの起動時にアプリケーションを実行できることは知っていますが、代わりにAutomatorアクション、サービス、シェルスクリプト、またはAppleScriptを起動時に実行できますか?

これらすべてをアプリケーションとして保存できることも知っていますが、ドックで開かないようにします。

3
gadgetmo

まず第一に、loginstartupとは異なります。この回答は、ログインを意味することを前提としています。これは、システム環境設定で構成されたプログラムを起動する機能を参照しているようです"ユーザーとグループ


コマンドラインユーティリティautomatorを使用してAutomatorスクリプトを実行し、osascriptを使用してAppleScriptsを実行します。彼らのmanページは、使用法を詳細に説明しています。

ログインフック を設定できますが、かなり古く、launchdを優先して非推奨になっています。

XML構成ファイルを~/Library/LaunchAgentsディレクトリーに配置することにより、 launchd ジョブを作成できます。このサイトにはかなり最小限の例が含まれており、システムが提供するlaunchdジョブの例については/System/Library/LaunchAgentsを表示できます。 RunAtLoadにはlaunchdディレクティブが必要です。


AppleScriptとAutomatorスクリプトをアプリケーションとして保存し、そのまま実行することもできます。それらをDockから非表示にするには、それらのContents/Info.plistファイルを編集し、説明されているように LSUIElement ディレクティブを追加します。 ここ 。これにより、ドックアイコンとメニューが非表示になります。

7
Daniel Beck

このようなプロパティリストを~/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を実行するか、ログアウトしてから再度ログインしてロードする必要があります。

2
Lri