在RootTools / RootShell中一次运行多个命令?

时间:2018-01-18 12:31:49

标签: android linux process runtime.exec roottools

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

RootTools(据我所知)一次只能打开一个根shell,因此命令只能逐个执行。这是一个问题,因为在我运行之后我无法阻止我的二进制文件。

我怎样才能做以下任何事情?

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

我需要使用RootTools,因为它是我从程序中读取标准输出的唯一方法。但是,如果还有其他方法,请发表评论。

1 个答案:

答案 0 :(得分:0)

您认为可以连接命令吗?

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

find / & sleep 5 && kill $!

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

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

  1. 在根shell中运行守护程序

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

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

    kill <pid>