0

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

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

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

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

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

4

1 回答 1

0

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

假设我想启动一个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>
    
于 2018-04-18T13:48:28.593 回答