在后台运行应用程序时,adb挂起

谢伊·金(Shay Gold)

我有一个程序应在后台运行。我正在尝试使用adb触发它并获得以下行为:

adb shell "app &"
adb shell ps | grep myapp

显示该应用未运行。

adb shell
$app &
$exit

终端无响应的结果。在终止adb进程后,终端将被释放,然后在我通过以下方式进行检查时:

adb shell ps | grep myapp

我看到该应用程序在后台运行。

有人可以解释这种行为吗?如何从命令行运行该应用程序,并使其通过cli在后台运行?

Android Debug Bridge version 1.0.32 
Revision 9e28ac08b3ed-android
杰弗里

您的应用程序是与ADB连接时生成的Shell的子级。当您退出外壳程序时,您的应用程序将被终止,因为外壳程序将被终止。您应该将应用程序与外壳分离:

使用nohup

adb shell "nohup app &"

使用守护程序(在某些Android系统上可用):

adb shell daemonize app
adb shell toybox daemonize app

并且,如果您(如我)在使用nohup挂起adb shell命令时遇到麻烦,并且如果daemonize不可用,则可以使用C自己编写它,如下所示:

#include <stdio.h>
#include <signal.h>
#include <sys/types.h>
#include <unistd.h>
#include <unistd.h>

int main(int argc, char ** argv)
{
  int pid = fork();
  if (pid > 0) {
    printf("Father dies\n");
    return 0;
  }

  /* redirect_fds(): redirect stdin, stdout, and stderr to /dev/NULL */
  (void) close(0);
  (void) close(1);
  (void) close(2);
  (void) dup(0);
  (void) dup(0);

  while (1)
  {
    printf("Child runs silently\n");
    sleep(1);
    /* Do long stuff in backgroudn here */
  }
  return 0; 
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在后台运行应用程序时收听

来自分类Dev

在后台运行应用程序时更改android活动?

来自分类Dev

在后台(通过ctrl + z)挂起的应用程序应该仍然运行还是应该停止运行?

来自分类Dev

可以在后台运行应用程序时运行CADisplayLink吗?

来自分类Dev

科尔多瓦:在后台运行应用程序时运行事件

来自分类Dev

在后台运行的WPF应用程序

来自分类Dev

使Web应用程序在后台运行

来自分类Dev

在后台运行应用程序时未触发OS X Cocoa计时器

来自分类Dev

在后台运行应用程序时如何增加徽章编号

来自分类Dev

在后台运行应用程序时ping服务器

来自分类Dev

在后台运行Mono应用程序时是否可以检测到缺少控制台?

来自分类Dev

在后台运行应用程序时,Swift推送通知无法正常工作

来自分类Dev

在后台运行CPU密集型应用程序时进行多核编程?

来自分类Dev

在后台应用程序时获取来电事件

来自分类Dev

如何使Android应用程序始终在后台运行?

来自分类Dev

iOS应用程序默认在后台模式下运行

来自分类Dev

单击主键,应用程序在后台运行

来自分类Dev

致电ios后恢复在后台运行的应用程序

来自分类Dev

如何保持应用程序在后台运行?

来自分类Dev

iOS应用程序可在后台连续运行

来自分类Dev

CloudKit推送通知,应用程序在后台运行

来自分类Dev

应用程序在后台运行功能| 扑

来自分类Dev

如何检查应用程序是否在后台运行?

来自分类Dev

在Android中杀死在后台运行的应用程序

来自分类Dev

应用程序在后台运行时的问题

来自分类Dev

保持iOS应用程序永远在后台运行

来自分类Dev

iOS应用程序可在后台连续运行

来自分类Dev

在后台运行GUI应用程序,稍后再连接

来自分类Dev

隐藏表单时在后台运行的应用程序

Related 相关文章

  1. 1

    在后台运行应用程序时收听

  2. 2

    在后台运行应用程序时更改android活动?

  3. 3

    在后台(通过ctrl + z)挂起的应用程序应该仍然运行还是应该停止运行?

  4. 4

    可以在后台运行应用程序时运行CADisplayLink吗?

  5. 5

    科尔多瓦:在后台运行应用程序时运行事件

  6. 6

    在后台运行的WPF应用程序

  7. 7

    使Web应用程序在后台运行

  8. 8

    在后台运行应用程序时未触发OS X Cocoa计时器

  9. 9

    在后台运行应用程序时如何增加徽章编号

  10. 10

    在后台运行应用程序时ping服务器

  11. 11

    在后台运行Mono应用程序时是否可以检测到缺少控制台?

  12. 12

    在后台运行应用程序时,Swift推送通知无法正常工作

  13. 13

    在后台运行CPU密集型应用程序时进行多核编程?

  14. 14

    在后台应用程序时获取来电事件

  15. 15

    如何使Android应用程序始终在后台运行?

  16. 16

    iOS应用程序默认在后台模式下运行

  17. 17

    单击主键,应用程序在后台运行

  18. 18

    致电ios后恢复在后台运行的应用程序

  19. 19

    如何保持应用程序在后台运行?

  20. 20

    iOS应用程序可在后台连续运行

  21. 21

    CloudKit推送通知,应用程序在后台运行

  22. 22

    应用程序在后台运行功能| 扑

  23. 23

    如何检查应用程序是否在后台运行?

  24. 24

    在Android中杀死在后台运行的应用程序

  25. 25

    应用程序在后台运行时的问题

  26. 26

    保持iOS应用程序永远在后台运行

  27. 27

    iOS应用程序可在后台连续运行

  28. 28

    在后台运行GUI应用程序,稍后再连接

  29. 29

    隐藏表单时在后台运行的应用程序

热门标签

归档