Startscript: $! を使用して pidfile を作成する - 時々間違った pid (1 つずれた) を返す

Startscript: $! を使用して pidfile を作成する - 時々間違った pid (1 つずれた) を返す

テスト サーバーで 3 つの redis インスタンスを実行しています。何らかの理由で、redis を起動する開始スクリプトが間違った pid をファイルに書き込むことがあります。その動作は次のとおりです。

su redis -c "redis-server /redis.conf & echo \$! > /var/run/redis_6379"

開始を連鎖させてredis_6379 start && redis_6380 start && redis_6381、そのように停止し、開始すると、10 回または 15 回の反復後に、開始ファイルで 1 ずれた pid が発生します。

なぜそれが起こるのか知っている人はいますか?

答え1

redis-serverフォークして、取得した PID が$!親 PID であるが、実際に必要なのは子 PID である可能性はありますか?

関連情報