なるほどUnixプロセス読書記録(2)

今日も読んだ(えらい)(しかし読むことが目的になっては意味がないのでは)

 

第11章まで読んで、以下を理解した。

 

  • すべてのプロセスは親プロセスから環境変数を引き継ぐ(たとえば、シェルで環境変数を設定した後Rubyプロセスを起動するとその環境変数を参照できる。$ MESSAGE='pug is so cute' ruby -e "puts ENV['MESSAGE']"や$ RAILS_ENV=production rails s)
  • プロセス名は実行時に変更できる(Rubyでは$PROGRAM_NAMEおよびその別名$0に現在のプロセスの名前が格納されている。)
  •  プロセス名の実際の活用は付録1「Resqueのプロセス管理」を参照してほしいそうだ
  • Rubyで正常終了(0)の終了コードを返すにはKernel#exitを使う(明示的に終了処理をせずにスクリプトを終了した場合もこれと同様の処理がおこなわれる)
  • Kernel#exitではexit 89のように任意の終了コードを返すこともできる
  • Kernel#at_exitなるものもある
  • Kernel#exit!のデフォルトの終了コードは1
  • Kernel#abortもある
  • Kernel#forkに渡したブロックは子プロセスでのみ実行される