我正在使用 adb 命令来管理 android 手机上的进程。
我可以通过命令杀死特定进程
adb kill "PID" (PID is the process ID)
并且该过程被杀死。
但是当我使用命令启动它时
adb start "PID"
它不会启动该过程。
我希望启动的进程位于 /system/bin 文件夹中,我不知道该进程的包或活动名称是什么。我只知道进程的“PID”和“用户”。
是否有任何命令可以在 android 设备上启动特定进程?
一旦你杀死了对应的进程PID
,你怎么能重新启动它?
您可以尝试通过adb
这种方式启动应用程序:-
adb shell
am start -n com.package.name/com.package.name.ActivityName
或者你可以直接使用它:
adb shell am start -n com.package.name/com.package.name.ActivityName
本机应用程序没有活动。它们就是这样 - 本机二进制文件。
如果您只知道进程的数字 ID - 那么ps <PID>
命令将在NAME
列中显示进程二进制文件的名称。像这样:
# ps 407
USER PID PPID VSIZE RSS WCHAN PC NAME
root 407 1 4540 272 ffffffff 000160a4 S /sbin/adbd
如果PPID
值为1
- 这意味着它已由系统启动,init
并且该应用程序很可能是“服务”应用程序。要控制它,您需要找到服务的名称,然后只需使用stop <service>
and start <service>
。
要查找服务的名称运行grep ^service /init*rc | grep <binary name>
服务的名称将在第二列(即“adbd”):
# grep ^service /init*rc | grep /sbin/adbd
/init.rc:service adbd /sbin/adbd
所以要正确控制这个应用程序 - 你应该使用stop adbd
和start adbd
.
您说您知道您的二进制文件在 /system/bin 中,所以我假设您也知道该二进制文件的名称。如果您不这样做,该命令将帮助您找出:
ps PID
要启动二进制文件(例如正常运行时间),您只需在 shell 中输入其名称:
adb shell
uptime
或在一个命令中
adb shell uptime
但是如果您的二进制文件不在 $PATH 中列出的目录之一中,您必须输入它的完整路径
adb shell /system/bin/uptime
您可以使用以下命令检查 $PATH:
adb shell echo $PATH