if pid==nil then exec('やりたいコマンド') else sleep 動かしたい時間 # まずはSIGINTで止めてみる Process.kill(pid,'INT') stat=Process.waitpid(pid,Process::WNOHANG) if stat==nil then # ダメなのでSIGTERMで Process.kill(pid,'TERM') stat=Process.waitpid(pid,Process::WNOHANG) if stat==nil then # これもダメだったのでSIGKILLで。これなら確実に終了できる Process.kill(pid,'KILL') stat=Process.waitpid(pid) end end end