Bashシェルでは、Nohup mycommand &
孤立したプロセスです。コマンドを実行した後、bashシェルを閉じます。親シェルを終了せずに行うことはできますか?プロセスをデーモン化するためのシステムコールfork()およびexit()に似たシェルコマンドがあるかどうかを知りたいです。
孤立プロセスを作成するには、親が死ぬ必要があります。シェルを死なせたくない場合は、シェルがOrphanの親であってはなりません。これを行う最も簡単な方法は、シェルのフォークを子プロセスにして、孤児になるプロセスをフォークすることです。 Wikipedia記事の紹介 で説明されているように、このダブルフォークはデーモンの起動方法です。
シェルでは、&
を使用して子プロセスを作成する方法を既に知っています。同じシェルのフォークである子プロセスを作成し、次にバックグラウンドプロセスをフォークさせるには、パーサーに理解してもらうだけです。
{ Nohup mycommand & } &