タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

unixとrubyに関するtdakakのブックマーク (2)

  • Rubyでシェルもどきを作る - tmtms のメモ

    Ruby でシェルのようなものを作ってみると、Ruby とシェルやシステムコールの理解ができて、研修の課題とかにいいんじゃないかと10年くらい前に思ってたのを、ふと思い出したので書いてみます。 基 シェルの動作を簡単に説明すると次のような感じです。 プロンプトを出力 標準入力からコマンドラインを読み込む 読み込んだコマンドを実行する コマンドの終了を待つ 1 に戻る これをそのまま Ruby で書いてみます。 while true print '-> ' # プロンプト表示 cmd = gets or break # コマンド入力 cmd.chomp! # 末尾の改行削除 pid = Process.fork do # 子プロセス生成 Process.exec [cmd, cmd] # コマンド実行 end Process.waitall # 子プロセスの終了待ち end Process

    Rubyでシェルもどきを作る - tmtms のメモ
    tdakak
    tdakak 2013/10/09
    楽しそう
  • 『Working with Unix Processes』の Appendix: How Resque Manages Processes を読みました - bekkou68 の日記

    はじめに Ending の続きです。 まとめ なぜ Resque が job を実行するのに fork しているのかというと、ワーカーのプロセスが使うメモリ量の肥大化を防ぐためだ。job を実行する度に fork するのでメモリは使うデメリットはあるが、実行後のクリーンアップが保証されるメリットがある。肥大化の背景には Ruby において GCレベルでブロック単位の開放は滅多にされないことがある。 ジョブを実行しているコードのリーディング大会 文中のコードは実際のコードを簡略化して抜き出したものです。実際のコードを読んでみたら複雑なことをやっていました。勉強会メンバーでで得た知識をもとに読み解いてみました。 # fork をラップすることで、fork をサポートしていない # プラットフォームでも動作するようにしている。 # # *注意* # fork をサポートしてないプラットフォー

    『Working with Unix Processes』の Appendix: How Resque Manages Processes を読みました - bekkou68 の日記
  • 1