Nohup替代方案 - 关闭adb后运行持久脚本

时间:2017-11-06 22:47:50

标签: android shell adb nohup

在手机拔掉电源后,我在非root用Mate 10上通过ADB保持脚本运行(在后台)时遇到问题。

我已尝试使用 nohup 命令,该命令一直对我的其他Android设备起作用,但无济于事。我知道nohup只能保护SIGHUP和SIGQUIT信号,因此设备可能会发送不同的信号来杀死进程。

我还试图产生一个运行脚本的子任务,试图隐藏'生成的进程并尝试调用 / system / bin / sh 在shell中生成一个shell,这两个shell都失败了。

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

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

1 个答案:

答案 0 :(得分:0)

有几种选择:

<强>不认

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

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

<强>屏幕

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

link:gnu screen manual

后台推送

[your_command] &>/dev/null &

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

&在后​​台运行该过程。