2016-08-14 23 views
3

この質問はthis questionのフォローアップです。posix_spawn()によって作成されたprocでsetsid()を呼び出す

のbash:フォークシーケンスでの呼び出しがありますので、このシェルではありませんジョブ制御

私が考えるあるbashのコマンドは、私は、メッセージが取得posix_spawn()によって発行された

関数setsid()と私はposix_spawn()を使用している間、この操作をシミュレートする方法を知りません。

bashプロセスの新しいセッションを作成する方法はありますか?

答えて

0

できません。現在のposix_spawnインターフェイスの一部ではありません。 http://austingroupbugs.net/view.php?id=1044 で議論されており、明らかに少なくとも1つの実装(QNX)がPOSIX_SPAWN_SETSIDを拡張として提供していますが、標準準拠のままにするにはforkを使用する必要があります。 forksとはsetsidを呼び出すこと

親プロセスが小さい場合は問題ではありませんforkを使用するので、私はそれが両方の長所を得るために想像し、あなたは小さなヘルパーのバイナリを起動するposix_spawnを使用することができます。 IMO、setsidを使用すると、二重実行のわずかな追加コストが無視できるほど稀にしかなりません。

関連する問題