shell 启动后台进程ADVANCED时ADB进程阻塞

hs1ihplo  于 2023-08-07  发布在  Shell
关注(0)|答案(2)|浏览(171)

所以我正在阅读这篇关于如何通过ADB shell在后台运行sleep的文章:ADB process blocks when starting background process
我想用这个做一些更高级的事情,我想在后台运行睡眠进程的pid-我想看看是否可以通过一行命令或在我可以调用的脚本中传递这些。然而,每次我试图这样做,它挂起。
所以我的脚本是:

sleep 100 &
echo $!;

字符串
这存储在/data/local/tmp/script.sh中
如果我在shell中运行这个脚本,它工作得很好:

adb -s <DEVICE> shell
y2q:/ $ sh /data/local/tmp/script.sh
12009
$


但如果我做了下面的事情:第一个月
它返回PID,但是它挂起直到睡眠结束。有没有一种方法可以在不阻塞睡眠的情况下执行此命令?谢谢你的帮忙。

7vhp5slm

7vhp5slm1#

script应该这样

#! /system/bin/sh

sleep 100 </dev/null >/dev/null 2>&1 &
echo $!

字符串
chmod +x script,你不需要.sh扩展。
然后,

adb shell /data/local/tmp/script


会像预期的那样工作。

bxgwgixi

bxgwgixi2#

你的剧本应该是

sleep 100 2>/dev/null 1>/dev/null & 
echo $!;

字符串
2>/dev/null:错误输出为空
1>/dev/null:标准输出为空

相关问题