Android获取指定进程的pid并杀死对应进程
时间: 2023-05-14 14:04:14 浏览: 83
可以使用以下代码获取指定进程的pid并杀死对应进程:
```java
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runningProcesses = am.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo processInfo : runningProcesses) {
if (processInfo.processName.equals("com.example.app")) {
int pid = processInfo.pid;
android.os.Process.killProcess(pid);
break;
}
}
```
其中,"com.example.app"需要替换成你想要杀死的进程的包名。
相关问题
用c++写一个获取指定的进程并杀死的代码
答:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <signal.h>int main(int argc, char *argv[])
{
if (argc > 1) {
char *proc_name = argv[1];
pid_t pid = 0; // 获取指定进程的 PID
FILE *fp = popen(strcat("pidof ", proc_name), "r");
fscanf(fp, "%d", &pid); if (pid != 0)
{
// 向指定进程发送 SIGKILL 信号
kill(pid, SIGKILL);
printf("成功杀死进程 %s, PID 为 %d\n", proc_name, pid);
}
else
{
printf("没有找到进程 %s\n", proc_name);
} pclose(fp);
} return 0;
}
Linux内核获取指定进程pid
在Linux内核中,可以通过进程的pid来获取进程的相关信息。可以使用以下代码来获取指定进程pid:
```
struct task_struct *task;
pid_t pid = [指定进程的pid];
task = pid_task(find_vpid(pid), PIDTYPE_PID);
if (task == NULL) {
// 进程不存在
} else {
// 获取进程信息
}
```
上面的代码中,使用函数`find_vpid`来查找对应pid的进程,然后使用`pid_task`函数将查找到的vpid转换为task_struct结构体,最后就可以通过task_struct结构体来获取进程的相关信息了。需要注意的是,如果进程不存在,`pid_task`函数返回NULL。