2

コミュニティ!

OSX 10.7.4 で 5 分ごとに簡単なスクリプトを実行しようとしています。ユーザーがマシンにログインしているかどうかに関係なく実行する必要があります (別名、バックグラウンド セッションで)。

したがって、私は I com.me.script.plist を作成し、それを経由し/System/Library/LaunchDaemons/ てロードし、経由launchctl -S background ./com.me.script.plist で開始しました:launchchctl start com.me.script

初めてでも問題なく動きます。しかし、設定した 300 秒の間隔が経過すると、再び実行されることはありません。

なぜそうなるのかについて何かアドバイスはありますか?ただし、Aqua セッションで実行すると完全に機能します。つまり、ユーザーがログインしている場合にのみ実行されます。ただし、その前に実行を開始する必要が本当にあります。ユーザーがログイン/ログアウトするか、別のユーザーがログイン/ログアウトするかは問題ではありません。

ここに私の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>LimitLoadToSessionType</key>
        <string>Background</string>
        <key>Label</key>
        <string>com.me.script</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/bin/php</string>
            <string>/Sites/script/notifier.php</string>
        </array>
        <key>StartInterval</key>
        <integer>900</integer>
    </dict>
</plist>
4

2 に答える 2

0

私は自分の間違いを見つけました...5分ごとに実行されると予想される場合、StartIntervalは900ではなく300である必要があります。ごめん、バカ。

于 2012-08-08T16:59:06.713 に答える
0

私は問題がここにあると言うつもりです:

<string>/Sites/script/notifier.php</string>

次のように書くつもりでしたか?

<string>/Users/username/Sites/script/notifier.php</string>

パスは、ドライブのルートから始まることを暗示的に開始します。デフォルトでは、/OSX にはルートにディレクトリがありません。/Sites

于 2012-08-08T15:16:44.233 に答える