Android 启动后台进程时,ADB进程阻塞

Android 启动后台进程时,ADB进程阻塞,android,shell,adb,Android,Shell,Adb,我正试图通过ADB在Android手机的后台运行一个shell脚本。为了简化,让我们让它睡眠100分钟: $ adb shell $ echo "nohup sleep 100&" > /data/local/tmp/test.sh $ sh /data/local/tmp/test.sh (does not block and returns to the shell immediately as expected. However:) $ exit (blocks until

我正试图通过ADB在Android手机的后台运行一个shell脚本。为了简化,让我们让它睡眠100分钟:

$ adb shell
$ echo "nohup sleep 100&" > /data/local/tmp/test.sh
$ sh /data/local/tmp/test.sh
(does not block and returns to the shell immediately as expected. However:)
$ exit
(blocks until the sleep process is done)
通过单个adb命令行执行相同的操作也是阻塞:

$ adb shell sh /data/local/tmp/test.sh
确实正确运行脚本,但adb调用会一直阻塞,直到“sleep 100”完成。如果我将CTRL-C从adb中取出,睡眠进程将继续运行,因此nohup部分似乎工作正常


如何在生成子进程后让adb退出,而不强制终止主机端的adb进程?

adb shell“nohup sleep 10 2>/dev/null 1>/dev/null&'
按预期工作-启动进程并且不阻塞。

@divyum,nohup仍然会阻塞,除非同时重定向stdout和stderr。