我正在尝试使用 Ruby 编写脚本以在 Android 应用程序上运行猴子测试。我坚持使用 1.8 Ruby,无法使用 spawn。
有关详细信息,请参见下面的代码。由于某些原因,即使该过程完成后,该logcat
过程仍将继续运行。monkey
在杀死进程之前,我曾使用Process.wait()
等待monkey
进程完成logcat
,但它并没有杀死它。我没有fork
正确使用吗?
谢谢。
pid_logcat = fork do
puts "Enter capturing logcat"
system("adb shell logcat | tee logcat.log")
end
pid_monkey = fork do
puts "Running monkey script"
system("adb shell monkey -p TestApp --throttle 200 -v 1000000 | tee Monkeylog.txt")
end
Process.wait(pid_monkey)
Process.kill("KILL", pid_logcat)
已编辑 1
我可以确认adb
确实会产生另一个不受 ruby 控制的进程,我现在该怎么办?Process.kill('HUP', -Process.getpgid(pid_logcat))
不会工作,因为这也会杀死父进程(红宝石进程分叉这个)
EDITED 2
exec()
似乎也不适用于pid_logcat
分叉进程。