2

こんにちは、objective-C/xcode を使用してデーモンを開発しようとしています。

私は Mac の世界に慣れていないので、xcode で選択するプロジェクト テンプレートとその方法を理解できますか。

簡単で基本的なデーモンのサンプル ソース コードを入手できますか?

4

1 に答える 1

4

デーモンの作成を開始するには、「コマンド ライン ツール」プロジェクトで十分です。特別なビルド要件はありません。デーモンに何をさせたいかによって異なります。

Mac OS X デーモンを作成する方法は、通常の Unix システムで行う方法と非常によく似ています。したがって、次の点に注意してください。

  • non-interactivesyslogd : ユーザーからの直接入力は得られませんが、プロセスが端末に接続されていないため、出力などに何かを使用する必要があります
  • environment : 特定の現在のディレクトリ、パス、デフォルトのアクセス許可、またはその他の環境設定があると想定しないでください - これらを明示的に設定します
  • security : デーモンがその機能を実行するために必要な最小限の特権を持っていることを確認します (これはそれ自体が大きなトピックです)
  • シグナル: 特定のシグナルをトラップして応答する必要があります。これは通常、プロセス制御に使用されるためです (例:SIGHUPデーモンに構成ファイルの再読み込みを強制する) 。

探してみると、Unix デーモンに関する優れた記事がいくつかあります。Unix に関する Stephens の本も常に優れています。

主に との統合に関して、考慮すべきデーモンに関する Mac 固有の情報がいくつかありlaunchdます。

典型的なデーモンは次のようなことをします:

  • ダブルフォーク、親プロセスから切り離す
  • プロセスグループと有効な UID を設定する
  • シグナルハンドラをインストールする
  • ファイルのパーミッションを設定する umask
  • ディレクトリを作業ディレクトリに変更する
  • 設定ファイルを読む
  • オープンソケットなど
  • リクエストを処理するために無限ループに入ります

ウィキペディアの記事にも簡単なデーモンの例があります。

于 2009-10-07T11:18:10.977 に答える