kenk回答ポイント 100ptウォッチ 2

Rubyについて質問です。


複数のコマンドを同時に実行したいので、
以下のようなコードを書きました。

[ソース measure.rb]
def measure(count)
 system("vmstat 1 #{count} > vm.log &")
 system("iostat 1 #{count} > io.log &")
end

measure 0

[コマンドライン]
 $ ruby measure.rb

この手の時間と回数を指定するようなコマンドは、
回数に「0」を指定すると無限回の繰り返しになります。

このような場合、通常 Ctrl+C で止めると思うのですが、
バックグラウンドで実行しているために
標準入力からのCtrl+CをRubyで受け取る方法がわかりません。
また、受信できたとしてもバックグラウンドのジョブに対して
Ctrl+C を送る方法もわかりません。

まとめると、知りたいことは以下の2点です。

1. Rubyスクリプトで、標準入力からの Ctrl+C を受け取る方法
2. バックグラウンドで実行しているジョブに、RubyからCtrl+Cを送る方法

可能であれば、実装例などもあるとうれしいです。

※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。
ログインして回答する

ベストアンサー

その他の回答

この質問へのコメント

コメントはありません

この質問への反応(ブックマークコメント)

質問の情報

登録日時
2008-01-23 14:46:58
終了日時
2008-01-24 08:48:03
回答条件
1人2回まで

この質問のカテゴリ

この質問に含まれるキーワード

Ruby760コマンドライン285スクリプト2307VM68標準入力20バックグラウンド124

人気の質問

メニュー

PC版