iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >ADB Shell:获取进程id
  • 680
分享到

ADB Shell:获取进程id

adbandroidlinux 2023-09-14 10:09:32 680人浏览 八月长安
摘要

一、前言         有时候我们会在Android设备中运行一些二进制文件。但是当这些文件运行在后台后,我们可能无法关闭他们。当我们希望获取到某个进程的pid,并通过kill命令停止他们时。一般做法我们使用ps命令查找想要的进程pid。

一、前言

        有时候我们会在Android设备中运行一些二进制文件。但是当这些文件运行在后台后,我们可能无法关闭他们。当我们希望获取到某个进程的pid,并通过kill命令停止他们时。一般做法我们使用ps命令查找想要的进程pid。但是当我们需要在我们的应用中做到这点,则需要准确地获取到进程pid。

二、命令

ps -eo COMM,PID,PPID,COMMAND|grep -E "^($regex)"|awk '{if ($2 ~ /^\(deleted\)$/) print $1 " " $3 " " $4 " " $5; else print $1 " " $2 " " $3 " " $4}'
  • ps命令:列出用户进程列表
  • -e:同-A,列出所有进程
  • -o:输出字段而不是默认值,每个字段都有可选的
    • COMM :可运行程序的文件名
    • PID:进程ID
    • PPID:父进程ID
    • COMMAND:可运行程序的路径(可以根据这个确定是否是我们找寻的程序)

grep -E "^($regex)" 是用于过滤ps命令的结果,$regex是正则表达式,例如我要找寻开头是smbd和nmbd的进程,则可以写成grep -E "^(smbd|nmbd)"

 awk命令是用于规范化输出结果。上面的ps命令会输出以下两种结果:

第一种:

smbd                         5756     1 /data/data/com.xxx.xxx/files/bin/smbd
smbd                         5758  5756 /data/data/com.xxx.xxx/files/bin/smbd
smbd                         5759  5756 /data/data/com.xxx.xxx/files/bin/smbd
smbd                         5773  5756 /data/data/com.xxx.xxx/files/bin/smbd
nmbd                         5777     1 /data/data/com.xxx.xxx/files/bin/nmbd

第二种(进程运行后源文件被删除):

smbd (deleted)                         5756     1 /data/data/com.xxx.xxx/files/bin/smbd (deleted)
smbd (deleted)                         5758  5756 /data/data/com.xxx.xxx/files/bin/smbd (deleted)
smbd (deleted)                         5759  5756 /data/data/com.xxx.xxx/files/bin/smbd (deleted)
smbd (deleted)                         5773  5756 /data/data/com.xxx.xxx/files/bin/smbd (deleted)
nmbd (deleted)                         5777     1 /data/data/com.xxx.xxx/files/bin/nmbd (deleted)

所以最后需要通过awk命令规范第二种输出的结果。

三、命令执行结果参考

这里仅截取了一部分

sh 2753 1274 /system/bin/shinstaller 2755 2753 /data/local/tmp/.studio/bin/installerabb 2771 1274 /system/bin/abbapp_process64 2786 424 /system/bin/app_process64loGCat 3178 1274 /system/bin/logcat[kworker/5:0-pm] 3183 2 [kworker/5:0-pm][kworker/1:0-events] 3448 2 [kworker/1:0-events][kworker/u17:5-csf_scheduler_gpu_idle_] 3556 2 [kworker/u17:5-csf_scheduler_gpu_idle_][kworker/0:2-events] 3579 2 [kworker/0:2-events][kworker/5:1H-events_highpri] 3614 2 [kworker/5:1H-events_highpri][kworker/2:0H-kblockd] 3631 2 [kworker/2:0H-kblockd][kworker/0:1H-mmc_complete] 3916 2 [kworker/0:1H-mmc_complete]sh 3917 1274 /system/bin/shvm 3919 3917 /system/bin/vmvm 3920 3919 /system/bin/vmvm 3922 1 /system/bin/vmvm 3924 3922 /system/bin/vmsh 3926 3924 /system/bin/shsh 4000 1414 /system/bin/shapp_process64 4015 424 /system/bin/app_process64app_process64 4062 424 /system/bin/app_process64pure-ftpd 4217 1 /data/user/0/com.station.pluginscenter/files/modules/pure-ftpd/pure-ftpdWEBdav 4415 1 /data/user/0/com.station.pluginscenter/files/modules/station_webdav/webdavweb-server 4534 1 /data/user/0/com.station.pluginscenter/files/modules/webserver/web-server[kworker/7:0-pm] 4575 2 [kworker/7:0-pm]

来源地址:https://blog.csdn.net/jokers9221/article/details/130422264

--结束END--

本文标题: ADB Shell:获取进程id

本文链接: https://www.lsjlt.com/news/407071.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ADB Shell:获取进程id
    一、前言         有时候我们会在Android设备中运行一些二进制文件。但是当这些文件运行在后台后,我们可能无法关闭他们。当我们希望获取到某个进程的pid,并通过kill命令停止他们时。一般做法我们使用ps命令查找想要的进程pid。...
    99+
    2023-09-14
    adb android linux
  • Shell脚本中怎么获取进程ID
    今天就跟大家聊聊有关Shell脚本中怎么获取进程ID,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在某些情况下,你也许想要知道运行中的子shell的PID。这个PID信息可以在不同的...
    99+
    2023-06-09
  • 如何在shell脚本中获取进程ID
    这篇文章给大家介绍如何在shell脚本中获取进程ID,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。shell脚本在执行时,会启动子shell的进程。作为主shell的子进程,子shell将shell脚本中的命令作为批处...
    99+
    2023-06-28
  • Python 进程,获取进程id( o
    import os pid=os.fork() #fork反复拷贝 if pid==0: print("A",os.getpid(),os.getppid()) else: print("B",os.getpid(),o...
    99+
    2023-01-31
    进程 Python id
  • linux怎么根据进程id获取进程名
    在Linux系统中,可以使用以下命令根据进程ID获取进程名:```shellps -p -o comm=```其中,``是要查询的...
    99+
    2023-09-28
    linux
  • 使用Java如何获取进程的ID
    这期内容当中小编将会给大家带来有关使用Java如何获取进程的ID,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先是获取当前Java运行的Java进程ID,这个是网上常见的,也就是Java程序自身将进程I...
    99+
    2023-05-31
    java 进程 ava
  • Java获取Process子进程进程ID方法详解
    目录windows上获取pidlinux上获取pidjava可以通过Runtime.getRuntime().exec()执行一个操作系统的命令,在操作系统层面执行命令也就创建了一个...
    99+
    2022-12-30
    Java获取Process子进程ID Java获取子进程ID
  • python 中获取线程id
    该问题的解决主要参考了网上的几篇文章,在此一并谢过。1、python下使用ctypes获取threading线程idpython的多线程坑坑不断… …python的threading因为封装的太好, 很多本源的东西在threading对象...
    99+
    2023-01-31
    线程 python id
  • C# 如何获取当前进程或线程的ID
    目录获取当前进程或线程的IDC# 进程读取方法获取当前进程或线程的ID 如果获得当前进程的Id用: Process[] processes = Process.GetProcesse...
    99+
    2024-04-02
  • Android adb shell命令捕获systemtrace
    Android adb shell命令捕获systemtrace   (1)抓取trace文件: adb shell perfetto -o /data/misc/perfetto-traces/trace_file.perfetto-tr...
    99+
    2023-09-08
    android adb
  • autoit如何通过进程ID获取窗口句柄
    在AutoIt中,可以使用函数`WinGetHandle`通过进程ID获取窗口句柄。以下是示例代码:```autoit; 获取进程I...
    99+
    2023-08-08
    autoit
  • 安卓adb获取remount权限
    remount失败时策略问题 安卓操作 fastboot权限 启用adb方式 工程模式启用(eng版本)指令启动(userdebug) 指令启动 串口窗口输入以下指令:susetprop persist.sys.service.otg...
    99+
    2023-08-23
    android adb
  • linux中怎么使用shell根据进程名获取pid
    这篇文章主要介绍linux中怎么使用shell根据进程名获取pid,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!导读Linux 的交互式 Shell 与 Shell 脚本存在一定的差异,主要是由于后者存在一个独立的运...
    99+
    2023-06-09
  • 怎么用Shell脚本获取进程的运行时间
    这篇文章主要介绍“怎么用Shell脚本获取进程的运行时间”,在日常操作中,相信很多人在怎么用Shell脚本获取进程的运行时间问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Shell脚本获取进程的运行时间...
    99+
    2023-06-09
  • adb shell获取安卓设备电量ROM内存帧率等信息
    adb shell获取安卓设备电量ROM内存帧率等信息 adb shell指令获取Android设备的运行状态,如电池信息(包含电量百分比,电池状态,电池温度,电池电压,充放电电流),CPU占比,内存占比,ROM总大小,ROM已用大小,RO...
    99+
    2023-10-24
    adb android
  • adb获取app包名的方法
    一、手机或模拟器上已安装app(美团为例) 方法一:在命令行输入adb shell am monitor,按Enter,再启动想要获取的app (包名在最后一行:com.sankuai.meituan...
    99+
    2023-09-16
    测试工具 android 自动化 appuim
  • JavaScript怎么获取id属性
    这篇文章主要介绍JavaScript怎么获取id属性,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在js中,可以使用getAttribute方法获取id属性,语法格式为“对象.getAttribute(id名称)”。...
    99+
    2023-06-15
  • autojs怎么获取控件id
    在Auto.js中,可以通过以下方法获取控件的id:1. 使用id()方法:可以通过控件的文本内容或者XPath来获取控件的id。例...
    99+
    2023-10-18
    autojs
  • Linux下获取线程id的方法总结
    方法总结说明 getpid() Linux系统调用,获取进程id,也是主线程id。 gettid() Linux系统调用,获取线程id。 C运行库没有封装这个接口…用syscall()方式调用。 在主线程中,getpid = getti...
    99+
    2023-08-18
    linux 服务器 c++ 开发语言 ubuntu
  • 如何获取更新剪贴板的应用程序的进程ID或名称?
    问题内容 我正在用 c# 创建剪贴板管理器,有时我会遇到剪贴板被某些应用程序设置为空的情况。 这发生在例如excel 取消选择刚刚复制的内容时,因此我需要确定剪贴板是否为空,但是如何获...
    99+
    2024-02-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作