4

〜/ Library/LaunchAgentsに次の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>com.yogapo.test_launchd</string>

    <key>Program</key>
    <string>. /Users/luke/dev/data_yogapo/script/test_launchd.sh</string>

    <key>StartInterval</key>
    <integer>10</integer>

    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>

また、test_launchd.shファイルには次のものが含まれています。

#! /bin/bash 

echo "hello world from test_launchd.sh" >> /Users/luke/dev/data_yogapo/log/development.log

test_launchd.shを手動で実行すると
. /Users/luke/dev/data_yogapo/script/test_launchd.sh 、期待どおりの結果が得られます。次の行が最後に表示されます。development.log

しかし、このplistファイルをロードしても、何も起こりません。

$ cd ~/Library/LaunchAgents
$ launchctl load com.yogapo.test_launchd.plist
$ launchctl list | grep yogapo
  -       1       com.yogapo.test_launchd

RunAtLoadキーを使用して、または使用せずにこれを試しました。私はここSOやインターネット上の他の場所で他の答えを見てきました。私はチュートリアルに従いましたが、何も起きていません。どんな助けでも大歓迎です-ありがとう!

4

2 に答える 2

7

あなたはlaunchd呼ばれるプログラムを実行するように求めています

". /Users/luke/dev/data_yogapo/script/test_launchd.sh"

キーの値全体をProgram最初の引数として使用しますexecvp(詳細については、 man execvp(3)を参照してください)。

systemログを調べると、次のようになります。

5月22日21:17:38へこんだcom.apple.launchd.peruser.501[202](com.yogapo.test_launchd [32986]):posix_spawn("。/Users/luke/dev/data_yogapo/script/test_launchd.sh" 、...):そのようなファイルまたはディレクトリはありません5月22日21:17:38へこんだcom.apple.launchd.peruser.501 [202](com.yogapo.test_launchd [32986]):終了コードで終了:1

launchdシェルではありません。ただし、ハッシュバン文字シーケンスを解釈して、スクリプトの解釈に使用するプログラムを特定することはできます。したがって、実行するプログラムとしてスクリプトを指定するだけです。

<key>Program</key>
<string>/Users/luke/dev/data_yogapo/script/test_launchd.sh</string>

:スクリプトに引数を渡す必要がある場合は、ProgramArguments代わりにキーを使用して、コマンドライン全体をそこに配置してください。例えば:

<key>ProgramArguments</key>
<string>/Users/luke/dev/data_yogapo/script/test_launchd.sh arg1 arg2 arg3</string>
于 2012-05-23T01:49:57.963 に答える
0

解決策私が見つけた最も簡単なことは、これらのファイルを操作するためのアプリをダウンロードすることでした。

https://itunes.apple.com/us/app/launchd-task-scheduler/id620249105

于 2013-04-17T15:26:14.597 に答える