我正在尝试使用 Ruby 编写脚本以在 Android 应用程序上运行猴子测试。我受困于 1.8 Ruby,无法使用 spawn。
详情请看下面的代码。由于某些原因,即使在 monkey
进程完成后,logcat
进程仍将继续运行。我曾使用 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))
不会工作,因为这也会杀死父进程( ruby 进程派生这个)
已编辑 2
exec()
似乎也不适用于 pid_logcat
fork 进程。
最佳答案
只需在代码后添加 Process.wait(pid_logcat)
。
关于android - 当另一个 Ruby 子进程完成时终止一个 Ruby 子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14638226/