プロが教える店舗&オフィスのセキュリティ対策術

シェルスクリプト超初心者です。

ログファイルを『tail -f』で開き、その内容を一時的な
テキストファイルにリダイレクトで書き出します。
その処理を、一定時間経過後に自動的に終了する。
といった内容のシェルスクリプトを作成したいと思っています。
しかし、「tail -f」を実行したプロセスを一定時間経過後に
どういう風に終了させればよいのかよく分かりません。

実行したプロセスを一定時間経過後に終了させるような
方法が何かありませんか?
ちなみに実行環境は、Solaris9です。

【コマンド例】
tail -f ./"ログファイル" > ./temp.txt

かなり、初歩的な質問で申し訳ありませんが
宜しくお願いします。

A 回答 (1件)

コマンドをバックグラウンドで起動した後でスリープし、


スリープ後にコマンドをkillすることでできると思います。

Bシェル/Kシェルだと以下のようになると思います。

# コマンドをバックグラウンドで起動
tail -f ./"ログファイル" > ./temp.txt &
# バックグラウンドで起動したコマンドのプロセスID取得
cmd_pid=$!
# スリープ
sleep 希望の秒数
# プロセスの停止
kill $cmd_pid
    • good
    • 0
この回答へのお礼

ご回答有難う御座います。
やはりPIDを取得してkillするしかないですよね。

その方法でやってみます。
有難う御座いました。

お礼日時:2008/03/05 17:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!