launchctl configの何が問題になっていますか?


15

ログイン時にSickBeardを自動実行しようとしています

python /Applications/Sick-Beard/Sickbeard.py

<?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>Label</key>
  <string>com.sickbeard.sickbeard</string>
  <key>ProgramArguments</key>
  <array>
       <string>/usr/bin/python</string>
       <string>/Applications/Sick-Beard/SickBeard.py</string>
       <string>-q</string>
       <string>-d</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

実行するlaunchctl com.sickbeard.sickbeard.plistと、次のメッセージが表示されます。

launchctl load com.sickbeard.sickbeard.plist launchctl:返されるplistはありません:com.sickbeard.sickbeard.plist launchctl:返されるplistはありません:com.sickbeard.sickbeard.plist


コマンドラインで「launchctl load com.sickbeard.sickbeard.plist」を意味すると思いますか?そうしないと、まったく異なるエラーが発生します
;

回答:


37

pythonスクリプトとそのパラメーターへのパスが有効であると仮定しています。そうしないと、代わりにコンソールでエラーが表示される可能性が高くなります。

このエラーを最後に見たのは、余分なスペースなどのplistに偽の文字があり、構文エラーを引き起こしてロードに失敗したためです。plutil -lintplistで実行すると、構文がチェックされ、エラーが発生した行を簡単に報告できます。

plutil -lint com.sickbeard.sickbeard.plist

それでも解決しない場合は、(OSX)ログイン時にSickBeardを起動する方法、または sickbeardフォーラムのOSXスレッドで起動する方法が、picklistとは少し異なります(sickbeardが実行さ/usr/localれるのとは対照的に/Applications-許可の問題になる可能性があります)あなたと同じ問題を抱えている人もいます


2
ご協力ありがとうございました。コピーして貼り付けると、隠された余分な文字が表示されたようです。nanoを使用してXML全体を再入力しましたが、うまく機能しました。
ジョアンコスタ

2
おかげで、今まで知らなかったplutil -lint。とても便利な!
-robmathers

この投稿が見つかりましたが、コンソールの出力をチェックアウトすると、デバッグにも役立ちます。
ウイングタンウォン14年

2

難しい方法を見つけたので、次のようにファイルのsudoフルパスを使用してコマンドを実行する必要があり.plistます(あなたの場合):

sudo launchctl load /Library/LaunchDaemons/com.sickbeard.sickbeard.plist

パスは異なる場合がありますが、ファイルの場所を確認してlaunchctlコマンドに引用したとおりに渡す必要があります。


2

このメッセージnothing found to loadは、構成が他の構成によってオーバーライドされることを意味する場合があります。を使用するときにオプション「-w」を使用して、強制的にロードしますlaunchctl load or unload

plistファイルのロードまたはアンロードを強制する必要がある場合、plistをオーバーライドする構成があることを意味します。このオーバーライドは、「-w」を使用するときに作成されます。そうしないと、オーバーライドファイルにオーバーライドが追加されません。この場合を防ぐには、以下のファイルを編集し、オーバーライドを削除するジョブラベルを検索し、必要な行を削除します。

pico /var/db/launchd.db/com.apple.launchd/overrides.plist

たとえば、この行を削除します

<key>com.mydomain.myjob</key>
<dict>
        <key>Disabled</key>
        <true/>
</dict>

次に使用できます。launchctl load or unload /Library/LaunchDaemons/com.mydomain.myjob.plist「-w」または「-F」を使用せずに、メッセージを表示しないでくださいnothing found to load


1

-Fフラグを追加してlaunchctl、.plist を強制的にロードすることができます。また、.plistがパスlaunchctl検索に含まれていることを確認してください。.plistが別の場所にある場合は、-Dフラグを追加してドメインを指定することもできます。マンページから:

-D domain
指定されたドメインで* .plistで終わるplist(5)ファイルを探します。有効なドメインには、「システム」、「ローカル」、「ネットワーク」、「すべて」が含まれます。セッションタイプを指定すると、「ユーザー」と呼ばれる追加のドメインを使用できます。たとえば、セッションタイプが指定されていない場合、「-D system」は/ System / Library / LaunchDaemonsのプロパティリストファイルからロードされます。セッションタイプが渡されると、/ System / Library / LaunchAgentsからロードされます。

マンページに含まれるすべての情報を徹底的に確認してください-呼び出しが適切に設定されていない場合、本当に問題を引き起こす可能性があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.