LoginSignup
10
8

More than 5 years have passed since last update.

launchd管理ツールのLaunchControlが非常に便利

Last updated at Posted at 2016-04-24

Macで定期実行する場合、cronではなくlaunchdを使ったほうが良いと言われています。これはlaunchdの豊富な機能が使えることやスタートアップのデーモンなどと一緒に一元管理できることなどが理由だと思います。しかし、launchdは、XMLの読み辛い書式や、編集毎のlaunchctrl load/unloadの手間、成功/失敗の判断、デバッグが難しいなど、触ってみて挫折した人も多いのではないでしょうか。

私はギリギリのところでLaunchControlという有償のGUIツールを発見して、挫折を免れました。このツールが非常に便利だったので簡単に紹介します。これを使い始めてから、launchdが好きになりました。

環境

  • OS X El Capitan 10.11.3

使い方

画面の説明

左ペイン: ~/Library/LaunchAgentsに配置してある各タスク
中ペイン: タスクの詳細
右ペイン: launchdの設定

タスクの追加

左下の+ボタンからタスクを追加します。追加後、右ペインから各設定をドラッグアンドドロップで追加できます。追加した設定が誤っている場合は警告が表示されます。

1.gif

このGIFで作成したタスクは以下の内容で保存されています。

~/Library/LaunchAgents/local.helloworld.plist
<?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>local.job</string>
    <key>ProgramArguments</key>
    <array>
        <string>echo</string>
        <string>helloworld</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/tmp/local.job.stderr</string>
    <key>StandardOutPath</key>
    <string>/tmp/local.job.stdout</string>
</dict>
</plist>

タスクの実行

左ペインからタスクを選択してCommand+Shift+Tでタスクを実行できます。これは launchctl start と同じです。

上記のGIFで作成したlocal.helloworldを実行した場合、stdoutのパスに結果が出力されています。

$ cat /tmp/local.job.stdout
helloworld
10
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
8