私は* nixに初めてアクセスし、100%実行する必要があるいくつかのプロセスを削除する必要がある状況にありました。バックグラウンドで使用してください&
。
これを行うには、init.dスクリプトで次の行を使用します(userとして実行user
:
su -c 'process arg1 arg2 -w - | process2 arg1 -r - &' user
(-wはSTDOUT、STDINを書き込み、-rはSTDOUT、STDINを読み込みます)
特に、これらのプロセスは外部の影響から十分に保護されていないため、一般的に許容できないことがわかっています。
「サービス」のバックグラウンドジョブを作成することは許可されますか?
プロセス間通信を処理するには、FIFO/名前付きパイプを使用する必要がありますか?
それでは、これら2つのプロセスをバックグラウンドジョブとして作成する必要がありますか?これは安定していますか?
詳細については、次を参照してください。このメーリングリストのトピック。
ありがとう、
マット
ベストアンサー1
特に、これらのプロセスは外部の影響から十分に保護されていないため、一般的に許容できないことがわかっています。
「サービス」のバックグラウンドジョブを作成することは許可されますか?
他の方法がない場合(つまり、サービスが独自にフォークされない場合)、おそらくそうです。 Debian にはこの状況のパラメータがstart-stop-daemon
あります。--background
-b, --background
Typically used with programs that don't detach on their own.
This option will force start-stop-daemon to fork before starting
the process, and force it into the background. WARNING:
start-stop-daemon cannot check the exit status if the process
fails to execute for any reason. This is a last resort, and is
only meant for programs that either make no sense forking on
their own, or where it's not feasible to add the code for them
to do this themselves.