首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ADB命令奇怪的行为

ADB命令奇怪的行为
EN

Stack Overflow用户
提问于 2013-11-21 07:33:33
回答 1查看 571关注 0票数 0

我有一个关于亚行的问题。

我很抱歉这个问题的标题,因为我真的不知道如何给这个问题一个好的标题。

目前,我正在使用许多android设备,我注意到在一些设备上出现了以下问题。

假设我想运行一个位于电话的/data/local/tmp/文件夹中的shell脚本(my_script.sh)。

如果我这样做:

代码语言:javascript
复制
adb shell 'sh /data/local/tmp/my_script.sh &'

电话里什么都没发生。

如果我只是进入adb shell (通过在终端上输入adb shell ),当我得到以下提示时:

代码语言:javascript
复制
shell@android:/ $ 

然后我输入以下内容:

代码语言:javascript
复制
sh /data/local/tmp/my_script.sh &

一切都运行得很好。

这只发生在我拥有的几个设备上。所以我不知道我到底做错了什么。

这是另一条可能对某人有帮助的信息。如果我不在末尾使用"&“(这意味着我不会在后台进程中运行脚本),一切都会正常工作。

下面的代码给出了正确的行为:

代码语言:javascript
复制
adb shell 'sh /data/local/tmp/my_script.sh'

我完全迷路了,我希望这里有人能帮我。

提前感谢!

代码语言:javascript
复制
adb shell 'sh /data/local/tmp/my_script.sh &'

然后解锁屏幕,脚本就会正常运行。

这真的是我在很长一段时间内遇到的最奇怪的事情。

我真的希望有人能帮上忙。

EN

回答 1

Stack Overflow用户

发布于 2013-12-13 11:09:46

我猜你想要守护一些程序在后台运行。但通常情况下,子进程会在父进程离开时被杀死。在本例中,您的adb shell是父进程。

而且这种行为在不同的设备上确实是不同的。我刚刚在我的手机上试了试,发现"&“没有任何作用,shell命令仍然被阻止。

我认为更好的处理方法是使用linux的标准守护进程方法。请参阅:

  1. Write a daemonize native program
  2. How to daemonize a script on a generic linux os
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20109419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档