【问题标题】:Nohup alternative - Running persistent scripts after closing adbNohup 替代方案 - 关闭 adb 后运行持久脚本
【发布时间】:2017-11-06 22:47:49
【问题描述】:

在拔下手机后,我无法在我的非根 Mate 10 上通过 ADB 保持脚本运行(在后台)。

我尝试使用 nohup 命令,该命令在其他 Android 设备上一直对我有用,但无济于事。我知道 nohup 只能防止 SIGHUP 和 SIGQUIT 信号,因此设备可能会发送不同的信号来终止进程。

我还尝试生成一个子任务,该任务运行脚本以尝试“隐藏”生成的进程,并尝试调用 /system/bin/sh 在具有两者的 shell 中生成一个 shell也失败了。

是否有人对 nohup 的非根 Android 操作系统的替代方案有一些想法,或者对如何解决此问题有任何其他想法?

编辑: disownscreen 不存在于 Mate 10 的外壳中,因此无法使用。

【问题讨论】:

    标签: android shell adb nohup


    【解决方案1】:

    有几种选择:

    否认

    您可以结合disown& 将您的脚本推送到后台

    $ disown [your_command] &
    [your_command] can be checked by the jobs command. Once typed you will 
    $ jobs
    [1]+ Running [your_command]
    

    屏幕

    是一个虚拟终端。即使您的会话断开连接,屏幕也会继续运行。当您重新连接到服务器时,您可以重新连接到 screen 会话,一切都会像什么都没发生一样。

    链接:gnu screen manual

    后台推送

    [your_command] &>/dev/null &
    

    &>/dev/null 将所有命令输出重定向到黑洞。

    & 在后台运行进程。

    【讨论】:

    • 感谢您的回复。不幸的是,Mate 10 的外壳不包含 disownscreen 命令,因此我没有将它们包含在我的原始帖子中。我将对其进行编辑以包含该信息。后台推送也不起作用,因为它没有捕获 SIGHUP 信号并在 ADB 连接关闭时关闭
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 2015-08-15
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多