4

launchd デーモンからexecveを使用することは可能ですか? デーモンにしたい私のプロセスは、fork() に続いて execve を使用していくつかの子プロセスを起動しますが、launchd デーモンを作成するためのドキュメントには、「fork に続いて exec を呼び出す」ことは問題があると記載されています。これは、デーモンから子プロセスを作成できないということですか?

4

1 に答える 1

4

私の知る限り、問題なくフォークして実行できます。重要な点は、「プロセスを fork して親プロセスを終了させて​​はならない」ということです。つまり、launchd はサービスを「監視」します。サービスが終了すると、再起動されます。つまり、デーモン化されない可能性もあります (デーモン化とは、古典的なプロセスが新しいプロセスを生成し、新しいプロセス グループを作成し、親プロセスを終了し、サブプロセスがスキーム上に存在することを意味します)。

環境を散らかさないように、メインプロセスを終了する前にサブプロセスを確実に強制終了/終了する必要があると思います。

于 2011-03-10T13:34:25.663 に答える