Android killall 命令
来源:互联网 发布:国外网络代理服务器 编辑:程序博客网 时间:2024/06/02 20:36
Android命令自带的没有实现killall命令,当我们需要实现通过程序名kil掉一个进程是,这个时候就需要它了
下面参考了一会打个的getpid代码,通过进程名获取其piD
#include <stdio.h>#include <sys/types.h>#include <dirent.h>#include <stdlib.h>#include <string.h>#define PATH_MAX 128#include <cutils/log.h>int find_pid_by_name( char* ProcName, int* foundpid){ DIR *dir; struct dirent *d; int pid, i; char *s; int pnlen; i = 0; foundpid[0] = 0; pnlen = strlen(ProcName); /* Open the /proc directory. */ dir = opendir("/proc"); if (!dir) { printf("cannot open /proc"); return -1; } /* Walk through the directory. */ while ((d = readdir(dir)) != NULL) { char exe [PATH_MAX+1]; char path[PATH_MAX+1]; int len; int namelen; /* See if this is a process */ if ((pid = atoi(d->d_name)) == 0) continue; snprintf(exe, sizeof(exe), "/proc/%s/exe", d->d_name); LOGI("find_pid_by_name exe = %s.\n", exe); if ((len = readlink(exe, path, PATH_MAX)) < 0) continue; path[len] = '\0'; /* Find ProcName */ s = strrchr(path, '/'); if(s == NULL) continue; s++; /* we don't need small name len */ namelen = strlen(s); LOGI("s = %s.\n", s); if(namelen < pnlen) continue; if(!strncmp(ProcName, s, pnlen)) { /* to avoid subname like search proc tao but proc taolinke matched */ if(s[pnlen] == ' ' || s[pnlen] == '\0') { foundpid[i] = pid; i++; } } } foundpid[i] = 0; closedir(dir); return 0;}int main(int argc, char *argv[]){ int i, rv, pid_t[128]; int status = 0; if ( argc != 2 ) { LOGI("Usage %s procname\n",argv[0]); return 0; } rv = find_pid_by_name( argv[1], pid_t); LOGI("rv = %d.\n", rv); for(i=0; pid_t[i] != 0; i++) { char process_pid[20];int pid = 0;memset(&process_pid, 0x0, 10);sprintf(process_pid, " %d", pid_t[i]);LOGI("process_pid = %s.\n", process_pid);pid = vfork();if (pid < 0){LOGI( "(out)vfork error");continue;}if (0 == pid){execl("/system/bin/kill", "/system/bin/kill"," -9", process_pid, (char*)0);}else{while(waitpid(pid, &status, 0) < 0){printf( "waitpid error pid:%d \n", pid);break;}}} return 0; }
通过上面的程序就可以通过程序名KIll掉一个进程了。
- Android killall 命令
- killall命令
- killall命令
- killall 命令
- killall命令
- killall命令
- killall命令
- kill命令&&killall命令
- killall 命令的用法
- linux命令:killall
- linux 安装 killall命令
- Linux常用命令:killall命令
- Linux killall命令详解
- linux 命令:kill and killall
- killall命令的实际应用
- Linux命令(2):kill&killall
- killall
- killall
- HttpUrlConnection 链接网络
- 个人简历制作——Android自动升级&个人“服务器”搭建
- java打包jar war ear 介绍、区别及打包
- 利用httpUrlOpenConnetion 上传文件
- Oracle数据字典中包含的视图
- Android killall 命令
- 王二 设计模式读书笔记
- Office 使用技巧
- 如何查看 CPU 是否支持硬件虚拟化(VT 技术)
- Hoj 1440 Knight Moves
- STL之一:字符串用法详解
- jquery实现的放大镜
- 庖丁解牛:纵向切入ASP.NET 3.5控件和组件开发技术
- [LeetCode] Binary Tree Inorder Traversal - Iteratively