#!/usr/bin/env ruby require 'optparse' def run_as_daemon fork { Process.setsid Dir.chdir('/') trap(:INT) { exit! 0 } trap(:TERM) { exit! 0 } trap(:HUP) { exit! 0 } open('/dev/null', 'r+') {|f| [$stdin, $stdout, $stderr].each {|io| io.reopen f } } yield } end interval = 2 opt = OptionParser.new opt.on('-n [INTERVAL]') {|v| interval = v.to_i } opt.parse!(ARGV) run_as_daemon { loop { system(*ARGV) sleep interval } } exit! 0
↓な感じで使う。
./d.rb "ps | wc -l >> logfile"
似たようなコマンドってないのかなー。