我正在尝试使用 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分叉进程。