在手机拔掉电源后,我在非root用Mate 10上通过ADB保持脚本运行(在后台)时遇到问题。
我已尝试使用 nohup 命令,该命令一直对我的其他Android设备起作用,但无济于事。我知道nohup只能保护SIGHUP和SIGQUIT信号,因此设备可能会发送不同的信号来杀死进程。
我还试图产生一个运行脚本的子任务,试图隐藏'生成的进程并尝试调用 / system / bin / sh 在shell中生成一个shell,这两个shell都失败了。
是否有人对非root用户Android操作系统的 nohup 的替代方法有任何想法,或者有关如何解决此问题的任何其他想法?
编辑: disown
和screen
不存在于Mate 10的shell中,因此无法使用它们。
答案 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
将所有命令输出重定向到黑洞。
&
在后台运行该过程。