『なるほどUnixプロセス』を読んだ

『なるほどUnixプロセス― Rubyで学ぶUnixの基礎』という本を読んだ。
内容は、システムコールやプロセス生成、プロセス管理など、Unixの基礎であるプロセスについて解説するというもの。
タイトルの通り Ruby による解説になっていて、普段から Ruby を使っている自分にとっては読みやすかった。

なるほどUnixプロセス ― Rubyで学ぶUnixの基礎 - 達人出版会

サーバーサイドの仕事をする身なので、もちろん普段からプロセスを意識して扱っているけど、どちらかというとプロセスを監視したりするだけで、自分で fork するようなコードを書いたことはなかった。
そのためプロセス生成や子プロセス管理、シグナル周りの知識に乏しく、一度きちんと勉強しなければ思っていた。
本書はその目的にぴったりなので、同じようなモチベーションの人におすすめしたい。

これまで Ruby でプロセスを扱ったことといえば、スクリプトKernel#systemOpen3.popen3 を使って外部コマンドを実行するくらいだった。
他にもプロセスを扱うメソッドはたくさんあるが、違いがよくわからないまま、引数や戻り値を見て勘で使い分けていた。
この本を読んだ今では、メソッドの裏にあるシステムコールとの紐づきや、そのメソッドが必要になるケースを理解しているので、これからはきちんと使い分けることができそう。

また、この本の付録では Resque や Unicorn の仕組みについても触れられている。
Resque のジョブ実行処理や Unicorn のワーカー終了処理には、本書で紹介されている知識がふんだんに使われており、プロセス管理の実践的な内容を学ぶことができる。

今後の開発でプロセスを操作するコードを書くことがどれだけあるかはわからないが、こうしたプロセスの知識は Docker を使う上で役に立つとは思うので (例えば init プロセスとか)、特にサーバーエンジニアの人は読んでおいて損はないんじゃないだろうか。

ちなみに、最近は Scrapbox で読書記録をつけてみている。
使い方としては、本を読んでいて気になった言葉やコードを書き留めるという感じ。
こうした記録はあとで読み返すことがあるのだが、Scrapbox の芋づる式に記事を辿っていける仕組みが読み返しと相性がよく、今のところ便利に使えている。

f:id:questbeat:20191205222240p:plain