launchdを取得してプログラムの引数を正しく読み取る
私が実行しようとしているコマンドがエラーになっているlaunchdスクリプトがあります(明らかにそれは言葉ではありません、現在です)、不適切な使用法を訴えています。 私が取得している特定のエラーは、システムログにダンプされたコマンドの使用テキストです。これから、コマンドのオプションではなく、plistの他の情報(コマンドへのパス、タイミングなど)が正しく解析されていると推測します。 コマンドの使用後、最後の1行があります。 18/11/2013 09:30:00.101 com.apple.launchd.peruser.501: (fake.lable.seti[33833]) Exited with code: 1 しかし、それは「エラーで終了しました」という意味です。 launchdがコマンドをオプションから分割し、manページでProgramArgumentsについて説明していることを知っています。 さて、私はexecvp(3)を読みましたが、私は賢明な人ではないので、皆さんにたくさんの質問をしています。 通常、端末からコマンドを実行すると、次のようになります。 /Library/Application\ Support/BOINC\ Data/boinccmd --host localhost --passwd gobbledygook --project http://setiathome.berkeley.edu/ update これは大丈夫です。 そして、LaunchAgent plistのProgram / ProgramArgumentsセクションでこれを分割する方法は次のとおりです。 <key>Program</key> <string>/Library/Application Support/BOINC Data/boinccmd</string> <key>ProgramArguments</key> <array> <string>--host localhost</string> <string>--passwd gobbledygook</string> <string>--project http://setiathome.berkeley.edu/ update</string> </array> (記録のために、私はもともとboinccmdへのパスを\エスケープしましたが、それは機能しません、あなたのためにパス内のスペースをエスケープします) 引数をさらに分割してみました: <key>Program</key> <string>/Library/Application Support/BOINC Data/boinccmd</string> …