『Working with Unix Processes』の Processes Can Wait を読みました
はじめに
Processes Are Friendly の続きです。
まとめ
プロセスは wait できる。Ruby の Process.wait は「親プロセスのもつ子プロセスのいずれか一つが exit するまで親プロセスを待たせるブロッキングコール」である。Process.wait の戻り値は exit した子プロセスの pid である。
親プロセスが子プロセスを wait する前に子プロセスが終了してしまっても、カーネルが子プロセスの情報をキューイングして保持しているので、親プロセスはその子プロセスの情報を取得できる。つまりレースコンディションは起きないようになっている。
Unicorn では親プロセスで fork して子プロセスをつくり、子プロセスのハートビートを知ることで子プロセスの生存を定期的にチェックしている。
知らなかった単語やフレーズ
- instruct: 指示する
- keep tabs on: 監視する, 定期的にチェックする