【问题标题】:Run multiple commands at once in RootTools/RootShell?在 RootTools/RootShell 中一次运行多个命令?
【发布时间】:2018-06-27 12:50:54
【问题描述】:

我正在使用 RootTools 库,我需要执行两个命令。第一个运行二进制文件,第二个向它发送 SIGINT 以杀死它。

RootTools(据我所知)一次只能打开一个root shell,所以命令只能一个一个地执行。这是一个问题,因为我在运行二进制文件后无法停止它。

我该如何做以下任何事情?

  • 一次执行两个命令,这样我就可以在二进制文件运行时运行我的 kill 命令
  • 以其他方式将 SIGINT 发送到我的本机进程(例如,使用 RootTools 函数)

我需要使用 RootTools,因为它是我从程序中读取标准输出的唯一方法。不过,如果有其他方法可以做到这一点,请发表评论。

【问题讨论】:

    标签: android linux process runtime.exec roottools


    【解决方案1】:

    你认为你可以连接命令吗?

    假设我想启动一个find 命令,但如果需要 5 秒,我希望它停止:

    find / & sleep 5 && kill $!
    

    我们也可以获得更适合的一个班轮(即忽略标准错误,仅在需要时才杀死等)。

    您也可以只存储 PID 并稍后将其杀死(注意,如果守护程序停止运行,操作系统可以重用其 PID):

    1. 在 root shell 中运行守护进程

      my-daemon >/dev/null & echo "PID: $!"
      
    2. 用 Java 解析输出并存储 PID (SharedPreferences?)

      var pid = outputLine.split(" ")[1]
      
    3. 稍后,使用 root shell 停止守护进程

      kill <pid>
      

    【讨论】:

      猜你喜欢
      • 2013-05-27
      • 1970-01-01
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多