2012-05-08 14 views
11

私はMac OS Xの世界では新しいですが、私はWindowsデベロッパーにスキルがあります。Objective-Cを使ったMac OS Xデーモン - launchd

Webサービスからファイルをアップロード/ダウンロードするデーモン(WindowsではWindowsサービス)を開発する必要があります。

私の質問は: Objective-Cで書かれたデーモン(アップロード/ダウンロード)のアプリを作成し、OSがlaunchdの使用を開始したときに起動することは可能ですか?または、デーモンを作成する別の方法がありますか?

は、これらのサービスがLaunchDaemon(システム全体)およびLaunchAgent(ユーザー固有)と呼ばれているOS X上であなたに

答えて

2

私が正しく理解しているかどうかはわかりませんが、あなたはそれを行うことができると思います。次のリンクは、Objective-Cでデーモンがどのように動作するかを理解する良いスタートになります。 Apple Developer ここに興味深いコードがあります。 It is about GPS but it might be usefull。また、このgithubフォルダの外観を見てください。 It is a controller for start/stop daemons

+0

ありがとう、それは私が探しているものです。 – avmauricio

4

ありがとうございます。起動するタイミング、実行する実行ファイル、stdin、stdout、stderrの処理方法、渡す引数などをシステムに知らせる構成を作成します。これらのmanページを見て:

launchd(8)  # the service controlling other services 
launchctl(1)  # the command to control services 
launchd.plist(5) # the configuration format for services 

デーモンは、だから、Objective-Cのは、Macプラットフォームの典型的な選択が、ルビー、Pythonのから何かあるOS X上で動作します任意の言語で記述することができCやC++のようにAppleScriptを使ってPerlを実行することもできます。

いいえ、これをMacで行う方法は他にありません(推奨)。 init.d -styleスクリプトはMacでも[DarwinではUNIX層でも]動作しません。または、より正確には、それらを実行するインフラストラクチャはありません。

詳細については、Daemons and Services Programming Guideを参照してください。

+0

強調:***は***のいずれかの言語で表記できます。 InputManagerハックのため、LaunchDaemonまたはシステムレベルのLaunchAgentにObj-Cを使用しないでください! – Richard