#!/bin/ksh
# start_service: start the service
my_server_executable 2>&1 | my_pipe_following_shell_script &
exit 0
コマンドラインで上記のスクリプトを実行した後、実行start_service
中のプロセスがコマンドを使用する親プロセスであることを確認しました。予想される結果は次のとおりです。ps
bash
my_pipe_following_shell_script
my_server_executable
そして必要後者はPID 1()が所有していますinit
。
これが起こる理由とそれを防ぐ方法の説明を探しています。。
また、後で何が起こっているのかをデバッグ/検査するにはどうすればよいですか?ランニングはあまり役に立ちませんstart_service
でしstrace
た。出力で私が見つけた唯一の興味深い行は次のとおりです。
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb7f05708) = 30431
30431
PIDはどこにありますかmy_pipe_following_shell_script
?
Linux 2.6.18-308.16.1.el5PAE
ksh バージョン sh(AT&T Research) 93t+ 2010-02-02
GNU bash、バージョン 3.2.25(1)-リリース(i686-redhat-linux-gnu)