OS Xでlaunchdロギングを有効にするにはどうすればよいですか?


35

OS X 10.6でlaunchdロギングを有効にするにはどうすればよいですか?

正常に起動しない新しいデーモンを追加しました(ステータスは1)。

問題をデバッグしたいのですが、launchdログを見つけることができませんでした/var/log/launchd.log

回答:


26

私は解決策を見つけました

 sudo launchctl log level debug 

そしてこの後

 tail -f /var/log/system.log

1
私は、このOSが他のものと同様に管理者を必要とすることに気付きました。「WTFどこに冗長フラグがあります!」と叫んだ後、これを完全に探していました。OSXは確かに揺れますが、ハンドルを握るのは難しいです。Thx +1
チグジー

フォローアップ、参考:これはOS X 10.7.2でも動作します。ありがとう。
アランW.スミス

Leopardサーバーで問題が発生しており、起動したplistに何か問題があると思いました(Snow Leopardでも同じplistが機能します)。私は偶然これにつまずき、それは魅力のように機能します:)
icasimpan

27
これは10.10 Yosemite以降では機能しません。launchctlバージョン:Darwin System Bootstrapper 2.0.0:Tue Sep 9 16:30:56 PDT 2014
JeanMertz 14

9
@JeanMertz-代替手段はありますか?
ウマン

20

launchd plistファイルに次の行を含めると、launchd自体ではなくプロセスをログに記録しようとしていると仮定します。

<key>StandardOutPath</key>
<string>/path/to/logfile.log</string>
<key>StandardErrorPath</key>
<string>/path/to/another_logfile.log</string>

プロセスをリロードすると、スクリプトの内部にあるロギングまたは印刷は、実行されるたびにこれら2つのファイルのいずれかにキャプチャされます。ただし、ファイルを回転させるのはあなた次第です。ご想像のとおり、両方のインスタンスで同じファイルを使用すると、エラーとstdoutの両方が同じ場所に記録されます。

参照:起動デーモンとエージェントの作成のlaunchdジョブのデバッグセクション


17

OS X 10.11(El Capitan)では、sudo launchctl debug <service-target> --stdout --stderr@ peterによって提案されたファイルシステムオプションを使用したくない場合に使用して、1回限りのログを有効にできます。

現在のの実装では多くのものが異なりますがlaunchctl、これ<service-target>はちょっと変です。たとえば~/Library/LaunchAgents/dev.localmon.plist、「label」を持つで構成するローカルサービスがあるとしますdev.localmon。これ<service-target>はでgui/$UID/dev.localmon、ここに$UIDユーザーIDがあります。CLIでこれを実行しているので、シェルが自動的に補間します。

したがってdev.localmon、起動時にサービスがクラッシュしたとすると、次のように呼び出してlaunchctl、プロセスのstdoutとstderrをシェルにパイプすることができます(次回のみ)。

sudo launchctl debug gui/$UID/dev.localmon --stdout --stderr

それはオープンですぐに使えるTTYでハングするので、別のターミナルに移動して実行してください:

launchctl start dev.localmon
# start is a legacy command and doesn't use the fancy new service-target notation

次に、最初のターミナルに戻って、出力表示されます。(奇妙なことに、サービスプロセスが終了しても閉じないため、Ctrl-Cを押す必要があります。)

ところで、以前にサービスを壊していたPATHまたは環境で設定ファイルを修正したらlaunchctl unload ~/Library/LaunchAgents/dev.localmon.plist && launchctl load ~/Library/LaunchAgents/dev.localmon.plist、ドキュメントの目的のuncacheサブコマンドには次の効果があるため、古い2ステップを使用する必要があります。

コマンドはまだ実装されていません。

Appleのポストジョブリリース戦略に対するイェイ:「高速で動き、物を壊す」


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