私はMacOSXの世界では初めてですが、Windows開発のスキルを持っています。
Webサービスからファイルをアップロード/ダウンロードするデーモン(WindowsではWindowsサービスになります)を開発する必要があります。
私の質問は、(アップロード/ダウンロードするための)デーモンとなるObjective-Cで記述されたアプリを作成し、OSがlaunchdを使用し始めたときにそれを起動することは可能ですか?または、デーモンを作成する別の方法がありますか?
ありがとうございました
私はMacOSXの世界では初めてですが、Windows開発のスキルを持っています。
Webサービスからファイルをアップロード/ダウンロードするデーモン(WindowsではWindowsサービスになります)を開発する必要があります。
私の質問は、(アップロード/ダウンロードするための)デーモンとなるObjective-Cで記述されたアプリを作成し、OSがlaunchdを使用し始めたときにそれを起動することは可能ですか?または、デーモンを作成する別の方法がありますか?
ありがとうございました
OS X では、これらのサービスは LaunchDaemon (システム全体) および LaunchAgent (ユーザー固有) と呼ばれます。いつ開始するか、どの実行可能ファイルを実行するか、stdin、stdout、および stderr をどうするか、どの引数を渡すかなどをシステムに指示する構成を作成します。これらのマニュアルページを見てください:
launchd(8) # the service controlling other services
launchctl(1) # the command to control services
launchd.plist(5) # the configuration format for services
デーモンは、OS X で実行される任意の言語で作成できます。そのため、Objective-C は Mac プラットフォームの一般的な選択肢ですが、AppleScript よりも Ruby、Python、Perl からプレーンな C や C++ まで、他の言語であれば何でも構いません。
いいえ、Mac でこれを行う他の (推奨される) 方法はありません。init.d
-style スクリプトは Mac [または Darwin では UNIX レイヤー] では機能しません。より正確には、それらを実行するインフラストラクチャがありません。
詳細については、Daemons and Services Programming Guide を参照してください。
正しく理解できたかどうかわかりませんが、できると思います。次のリンクは、Objective-C Apple Developerでデーモンがどのように機能するかを理解するための良い出発点になる可能性が あります。ここに興味深いコードがあります。GPS の話ですが、参考になるかもしれません。この github フォルダーも見てください。起動・停止デーモンのコントローラーです