「レガシー」launchctlコマンドを使用して、plistをロードおよびアンロードするにはどうすればよいですか?


13

にいくつかのplistファイルがあり~/Library/LaunchAgentsます。

私は喜んで使ってきたlaunchctl load -wし、launchctl unload -w年間のオンとオフこれらをオンにします。しかし、私は今それに気づくloadと、unloadmanページの「レガシー」のセクションに追いやられています。それらの1つを呼び出しましょうcom.example.service.plist

ただし、とを介してこれらのplistと対話しようとするlaunchctl enable "gui/$(id -u)/com.example.service"launchctl disable "gui/$(id -u)/com.example.service"、他のlaunchdコマンド成功を報告するようです -たとえば、launchctl print "gui/$(id -u)"設定した状態に対応する無効なフラグを完全に表示する-サービスは実際には開始および停止しません自分のポートで聞いて聞き取ります。

行方不明のステップはありますか?今のところ私は固執しloadunloadいますが、Appleが最終的に古い/悪い方法でドアを叩く前に、このようなものとやり取りする非推奨の方法を学びたいです...


レガシーとは、変更が行われていることを意味します-10.11以前のバージョンでも、ロードとアンロードを心ゆくまで使用できます。私の推測では、アップルは今年のWWDCでドキュメントを作成し、移行のタイムラインを
作成する予定

1
私はまだこのための答えがないかもしれないと思いますが、それは確かに見えるようにenableしてdisable置き換えることを意図しているloadunload。期待どおりに動作させることができません。
グリフ

1
でフォローしようとlaunchctl enableしましたlaunchctl kickstartか?

私は持っていませんが、launchctl kickstart問題のジョブのアクティベーションを発行するだけではありませんか?純粋にオンデマンドのアクティベーションが必要なため、launchdを使用しています。
グリフ

2
TJ

回答:


6

Twitterユーザー@launchderp に尋ねました。

@launchderp launchctl load少なくとも10.12または次に来るものまで、使用してもアンロードしても安全ですか?

cf 「レガシー」launchctlコマンドを使用してplistsをロードおよびアンロードするにはどうすればよいですか?

そして@launchderpは答えた

@tjluomaうん、彼らはまだ安全だ。それらを壊すには長すぎる依存関係。

これはAppleの公式声明とは思えないかもしれませんが、この人launchdはAppleのために積極的に取り組んでいる人であり、彼らの言うことを信頼していると思います。YMMV。

ストーリーの教訓:ロード/アンロードが機能している場合は、引き続き使用してください:-)


2
それは非常にについての質問に対処していないため、「受け入れられた」としてマーキングではないenabledisable私はまだ情報を感謝しているためしかしupvoted :)。
グリフ

1

TJ Luomaが紹介した記事は非常に役立ちます。デーモンを起動する手順:

  1. /Library/LaunchDaemons/通常どおりplistファイルを保存します。ファイルがでcom.example.mysrv.plist、plistのラベルがであるとしますcom.example.mysrv
  2. sudo launchctl bootstrap system /Library/LaunchDaemons/com.example.mysrv.plist。パスは、相対的(にすることができることに留意されたい$PWD)、または絶対。
  3. でサービスを確認してくださいsudo launchctl print system/com.example.mysrv。「実行中」と表示されるはずです。

起動エージェントも同様である必要があります。警告:サービスをアンロードせずに停止する方法はわかりませんbootout

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