加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

从Linux启动Android上的持久后台进程

发布时间:2020-12-14 01:45:37 所属栏目:Linux 来源:网络整理
导读:假设我有一个简单的可执行 linux程序,它在循环中无限期运行,直到它被明确杀死.我希望能够以这样的方式部署它,即使在我从 Android设备断开USB电缆之后它仍继续运行.当我尝试运行这样的程序时, $adb shellandroid_shell$/path/to/dir/myprog 我可以断开电源线,
假设我有一个简单的可执行 linux程序,它在循环中无限期运行,直到它被明确杀死.我希望能够以这样的方式部署它,即使在我从 Android设备断开USB电缆之后它仍继续运行.当我尝试运行这样的程序时,

$adb shell
<android_shell>$/path/to/dir/myprog &

我可以断开电源线,当我连接它并做一个

$ps | grep myprog

我仍然可以看到它在运行.

但是,当我尝试以这种方式运行时,

$adb shell /path/to/dir/myprog &

我断开电源线的那一刻,这个过程就被杀死了,我再也找不到ps了.

1)这两种执行命令的方式有什么不同?

2)有没有办法从桌面终端运行命令以实现我想要做的事情?

解决方法

android_shell>$/path/to/dir/myprog &

此过程正在您设备的后台运行. ps内部设备.

$adb shell /path/to/dir/myprog &

这个过程在您的开发PC的背景下运行,显然adb进程与adbd守护进程的套接字连接因删除电缆而被杀死.[编辑]

解:-
使用nohup.

adb shell "nohup /path/to/dir/myprog &"

[编辑]

正如LieRyan所说“很重要.

nohup-

shell的挂断信号可以使用&来终止你的进程背景. nohup捕获SIGHUP挂断并忽略,以便它永远不会到达应用程序.在adb shell案例中,&会工作,但我遇到了问题&由于某些未知原因,进程被杀死.但当时无法挖掘原因(导致adb shell杀死的原因).没有我从未遇到任何问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读