たとえば、rubyで

system('start "" cmd')

とすると、非同期で実行できますが、プロセスIDが取得できないので、強制終了できません。

i = Process.spawn("cmd")

とするとプロセスIDは取得できますが、Process.kill("TERM", i) で終了できません。

目下のところは、spawn() でidを取得し、taskkill /im #{pid} /f /t で強制終了しています。

rubyでcmdのプロセスIDを取得でき、かつ、強制終了する方法はありますか?