Rails の controller を書いていて、途中の変数の値を取りたいので pp なんかを使いながらプログラムの処理を追いかけようなんて思っていたのですが。 STDOUT, STDERR, $stdout, $stderr が使えないななんて思って、rails のプロセスのWEBrick の lsof をとってみたところ。。
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME ruby 20836 masaru 0r CHR 1,3 955 /dev/null ruby 20836 masaru 1w CHR 1,3 955 /dev/null ruby 20836 masaru 2w CHR 1,3 955 /dev/null
クッ、全部 /dev/null かよ。 しょうがねーな、debugger 使うか。
ってか、よくよく見てみたら、STDIN を /dev/null に redirect しているんだが、/dev/zero が正しくないかこれ?(笑)
とりあえず debugger 使うってことで、この辺のページを参考にさせていただきます。
「Railsでデバッグをする7つの方法」をよく読んでみたら、WEBrick を foreground で動かせば stdout, stderr が使えるってこと発見。 よってデバッグ進行。
RAID1のミラーリングなどでHDDの故障からデータを守って、壊れたディスクはさっさと交換するってことをやっているわけだが、そのさっさと交換するためのディスクの故障の検知方法ってどうなっているんだって思って調べてみた。 smartmontools というツールがあり、ATAのディスクや各種 RAID Controller の状況を見る smartctl などのコマンドが入っている模様。 手元の CentOS 5 や Fedora 8 などには rpm で入っていた。 とりあえず smartd とかいうのを設定してみたものの、故障したディスクがないため、どのように故障を通知してくれるのか不明な感じw
おおよそのシステムの概要はわかっているんだが、DBのテーブル設計を理解するのは結構面倒。 Ruby on Rails で組んでいるシステムで、DBのテーブル設計あたりは ActiveRecord の migrate やら model を見ればおおよそわかるんだが、必至になって less やらで model のファイルを見ていても不明だわな。 だれかどこかで、 migrate と model のファイルから ER 図を作るようなビックリなツール作ってくれないかなぁw
あとはコタツの下敷きのカーペットを近所のホームセンターで買ってきて、セットアップ完了。
stdin を /dev/zero にしてしまうと、読めば読めてしまうので、/dev/null で正しいんでないか? そもそも stdin/stdout/stderr なんて UNIX 系 OS の独自仕様なので、Rails のような環境では使えないのが筋かも。
/dev/null を read してもなにも帰ってこないからいいのかぁ。
うぁーーーー趣味悪!(コタツ布団)<br><br>ファン以外の部外者が見るとホント寒いな。<br>まあ、らき☆すたとかより全然マシか。
大阪じゃお好み焼き定食ぐらいに普通だよw
こたつにみかんです。
うわーw。<br>> まあ、らき☆すたとかより全然マシか<br>似たようなもんだw。
昨日今日できたような らき☆すた や マリノス のファンに、歴史あるタイガースのよさが分かってたまるもんか(笑)
サーセンw