シェルでの強制終了

OKWave 2007年09月25日 13時00分

  • このエントリーをはてなブックマークに追加
シェルでの強制終了

通常で実行すると永遠と実行結果を出力するコマンドを、シェル内部にて実行して 内容をログに吐き出したいのですが停止方法がわかりません。
(ctrl+cと同じ事をシェル内部でやりたい。)

#!/bin/sh
prstat -t | awk '{print $2, $5}' > prstat.log

宜しくお願いします。

良回答

sleep XX -> kill はこの場合無効だと思われます。
(prstat -t だけだと永久ループのコマンドの為)

この場合は
prstat -t ではなく

prstat -t 1 300
としましょう。

意味合いとしては -t の出力結果を1秒毎更新、300回繰り返し
という意味です。
但しこの場合 prstat.log には300回実行分のログが残ります。

補足ですが prstat -t 300 1
とした場合 300秒毎に1回更新せよという意味になりますが
はじめの1回は一瞬で返ってくるので、これを1回とカウントしてしまうようです。

300秒後にもう1度実行させたい場合は prstat -t 300 2 とするが吉です。 但しこの場合もログには2回分の結果がのこります。

  • このエントリーをはてなブックマークに追加
関連キーワード
OS

SpecialPR

  • ビジネスの継続的な成長を促す新たなITのビジョン

    多くの企業においてITに求められる役割が、「守り」のコスト削減から「攻め」のビジネス貢献へとシフトしつつある。その中でIBMが提唱する新たなビジョンEnterprise Hybrid ITとは?

  • デジタル変革か?ゲームセットか?

    デジタルを駆使する破壊的なプレーヤーの出現、既存のビジネスモデルで競争力を持つプレイヤーはデジタル活用による変革が迫られている。これを読めばデジタル変革の全体像がわかる!