android - 当另一个 Ruby 子进程完成时终止一个 Ruby 子进程

标签 android ruby process stress-testing monkey

我正在尝试使用 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/

相关文章:

android - 如何在 android 中更改 .setpositivebutton 和 .setnegativebutton 默认主题颜色

arrays - 在 Ruby 中将对象数组转换为 JSON

ruby-on-rails - 这些错误消息是什么意思?

java - java中Exec方法从未抛出异常

Java ImageView 字符串作为 src

java - 在android上的开放网络套接字上解析XML

android - 如何动态设置TextView大小--android

系统配置目录的 Windows 等价物

c# - 在C#中获取进程信息的权限

java - 是否可以执行可运行的 JAR 并将其作为调用它的同一进程的一部分运行?