4

仕事で Mac で Skype と Adium クライアントを使用しています。私は 2 つのスクリプト (問題がある場合は Ruby) を持っており、start_chats両方kill_chatsのアプリケーションを開始/終了します。これらのスクリプトは実行可能であり、コマンド ラインから正常に動作します。私は以前、Snow Leopard で cron を使用して、スケジュールされた時間にこれらのスクリプトを実行していました。8: start_chats00 にオフィスに来て、kill_chats6:00 (18: 00) オフィスを出た後。

私は最近、Lion を搭載した新しいマシンを手に入れたので、cron は非常に不安定に動作し、ほとんどの場合、そのジョブをまったく実行しません (同じ crontab に他のジョブがあります)。そのため、テクノロジーについていくために、plist を使用してこれを作り直すことにしlaunchdました。私は多くの「チュートリアル」と、スクリプトの単純なクロックベースの実行を行うために plist を作成する方法について調べてきました。これらのチュートリアルのほとんどの問題は、plist を作成した後に何をすべきかを実際に教えていないことです。これが私のサンプルplistです(この投稿kill_chatsの助けを借りて構築されています):

<?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.me.kill_chats</string>
    <key>OnDemand</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/me/bin/kill_chats</string>
    </array>
    <key>RunAtLoad</key>
    <false/>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>18</integer>
        <key>Minute</key>
        <integer>0</integer>
    </dict>
</dict>
</plist>

はい、名前が付けlocal.me.kill_chats.plistられており、~/Library/LaunchAgents/ディレクトリに配置しています。キーも使用しようとしましたProgramが、どちらも機能しませんでした。私が走れば

$> launchctl load ~/Library/LaunchAgents/local.me.kill_chats.plist

リストは既にロードされていると表示されており、実際にそれを見ることができます

$> launchctl list | egrep kill_chats
   -    0   local.me.kill_chats

しかし、システム クロックが plist で指定された時刻に達すると、kill_chatsスクリプトは実行されません。もちろん、毎回テストするために 18:00 まで待っているわけではないので、現在の時刻よりも数分早く変更しますが、それでもスクリプトは実行されません。Lingon (以前の無料バージョン)も試してみましたが、何も動作しないようです。

私は何か間違ったことをしていますか?私のplistに何か問題がありますか?私が言ったように、私はさまざまなサイト (数多くの Stackexchange の投稿でさえも) を調べましたが、私のリストは正しいようです。リストを「使用」する方法がわかりません。どんな助けでも大歓迎です。

(注: 管理者は、必要に応じてこれをAppleまたはスーパーユーザーに自由に移行してください)

4

0 に答える 0