由于adb shell中的kill命令后面跟的参数是pid,因此先ps所有的应用程序:
adb在shell下:
ps
USER PID PPID VSIZE RSS WCHAN PC NAME
root 1 0 296 204 c008de04 0000c74c S /init
root 2 0 0 0 c004b334 00000000 S kthreadd
root 3 2 0 0 c003cf68 00000000 S ksoftirqd/0
root 4 2 0 0 c00486b8 00000000 S events/0
root 5 2 0 0 c00486b8 00000000 S khelper
root 10 2 0 0 c00486b8 00000000 S suspend
root 42 2 0 0 c00486b8 00000000 S kblockd/0
root 45 2 0 0 c00486b8 00000000 S cqueue
root 47 2 0 0 c016f13c 00000000 S kseriod
root 51 2 0 0 c00486b8 00000000 S kmmcd
root 96 2 0 0 c0065c7c 00000000 S pdflush
root 97 2 0 0 c0065c7c 00000000 S pdflush
root 98 2 0 0 c006990c 00000000 S kswapd0
root 100 2 0 0 c00486b8 00000000 S aio/0
root 268 2 0 0 c016c884 00000000 S mtdblockd
root 302 2 0 0 c0181200 00000000 S mmcqd
root 309 2 0 0 c00486b8 00000000 S rpciod/0
root 548 1 740 312 c0141bb0 afe0c1bc S /system/bin/sh
system 549 1 808 264 c01654b4 afe0c45c S /system/bin/servicemanager
root 550 1 848 392 c008e3f4 afe0c584 S /system/bin/vold
root 551 1 668 264 c0192c20 afe0cdec S /system/bin/debuggerd
radio 552 1 5392 684 ffffffff afe0cacc S /system/bin/rild
root 553 1 72432 20840 c008e3f4 afe0c584 S zygote
media 554 1 17720 3496 ffffffff afe0c45c S /system/bin/mediaserver
root 556 1 800 300 c01f3b04 afe0c1bc S /system/bin/installd
root 560 1 840 356 c00ae7b0 afe0d1dc S /system/bin/qemud
root 563 1 3332 152 ffffffff 0000e8c4 S /sbin/adbd
system 577 553 186652 24600 ffffffff afe0c45c S system_server
radio 617 553 106860 17432 ffffffff afe0d3e4 S comandroidphone
app_3 619 553 108804 19168 ffffffff afe0d3e4 S androidprocessacore
app_15 643 553 95536 13220 ffffffff afe0d3e4 S comandroidmms
app_0 660 553 94292 12604 ffffffff afe0d3e4 S comandroidalarmclock
app_4 671 553 96440 13636 ffffffff afe0d3e4 S androidprocessmedia
app_5 681 553 96556 13124 ffffffff afe0d3e4 S comandroidemail
root 709 563 740 328 c003aa1c afe0d08c S /system/bin/sh
app_3 713 553 96328 12920 ffffffff afe0d3e4 S comandroidinputmethodlat
in
app_9 720 553 94476 14524 ffffffff afe0d3e4 S comandroidmusic
root 726 709 884 336 00000000 afe0c1bc R ps
#
例如要关掉music
# kill 720
kill 720
# ps
ps
USER PID PPID VSIZE RSS WCHAN PC NAME
root 1 0 296 204 c008de04 0000c74c S /init
root 2 0 0 0 c004b334 00000000 S kthreadd
root 3 2 0 0 c003cf68 00000000 S ksoftirqd/0
root 4 2 0 0 c00486b8 00000000 S events/0
root 5 2 0 0 c00486b8 00000000 S khelper
root 10 2 0 0 c00486b8 00000000 S suspend
root 42 2 0 0 c00486b8 00000000 S kblockd/0
root 45 2 0 0 c00486b8 00000000 S cqueue
root 47 2 0 0 c016f13c 00000000 S kseriod
root 51 2 0 0 c00486b8 00000000 S kmmcd
root 96 2 0 0 c0065c7c 00000000 S pdflush
root 97 2 0 0 c0065c7c 00000000 S pdflush
root 98 2 0 0 c006990c 00000000 S kswapd0
root 100 2 0 0 c00486b8 00000000 S aio/0
root 268 2 0 0 c016c884 00000000 S mtdblockd
root 302 2 0 0 c0181200 00000000 S mmcqd
root 309 2 0 0 c00486b8 00000000 S rpciod/0
root 548 1 740 312 c0141bb0 afe0c1bc S /system/bin/sh
system 549 1 808 264 c01654b4 afe0c45c S /system/bin/servicemanager
root 550 1 848 392 c008e3f4 afe0c584 S /system/bin/vold
root 551 1 668 264 c0192c20 afe0cdec S /system/bin/debuggerd
radio 552 1 5392 684 ffffffff afe0cacc S /system/bin/rild
root 553 1 72432 20840 c008e3f4 afe0c584 S zygote
media 554 1 17720 3496 ffffffff afe0c45c S /system/bin/mediaserver
root 556 1 800 300 c01f3b04 afe0c1bc S /system/bin/installd
root 560 1 840 356 c00ae7b0 afe0d1dc S /system/bin/qemud
root 563 1 3332 152 ffffffff 0000e8c4 S /sbin/adbd
system 577 553 186648 24656 ffffffff afe0c45c S system_server
radio 617 553 106860 17528 ffffffff afe0d3e4 S comandroidphone
app_3 619 553 108804 19168 ffffffff afe0d3e4 S androidprocessacore
app_15 643 553 95536 13220 ffffffff afe0d3e4 S comandroidmms
app_0 660 553 94292 12604 ffffffff afe0d3e4 S comandroidalarmclock
app_4 671 553 96440 13636 ffffffff afe0d3e4 S androidprocessmedia
app_5 681 553 96556 13124 ffffffff afe0d3e4 S comandroidemail
root 709 563 740 328 c003aa1c afe0d08c S /system/bin/sh
app_3 713 553 96328 12920 ffffffff afe0d3e4 S comandroidinputmethodla
in
root 728 709 884 336 00000000 afe0c1bc R ps
#
对于这个信号而言,没有信号响应函数的话,进程应该会异常终止,对于系统已有的信号一般都是有默认处理的,具体的我有点记不得了,搜下其实就知道了我在网上找了下各信号默认处理方式,你看看吧,对你有没有用
信号名称 信号说明 默认处理
SIGABRT 由程序调用 abort时产生该信号。 程序异常结束。 进程终止并且产生core文件
SIGALRM timer到期, 有alarm或者setitimer 进程终止
SIGBUS 总线错误,地址没对齐等。取决于具体硬件。 结束终止并产生core文件
SIGCHLD 进程停止或者终止时,父进程会收到该信号。 忽略该信号
SIGCONT 让停止的进程继续执行 继续执行或者忽略
SIGFPE 算术运算异常,除0等。 进程终止并且产生core文件。
SIGHUP 终端关闭时产生这个信号 进程终止
SIGILL 代码中有非法指令 进程终止并产生core文件
SIGINT 终端输入了中断字符ctrl+c 进程终止
SIGIO 异步I/O,跟SIGPOLL一样。 进程终止
SIGIOT 执行I/O时产生硬件错误 进程终止并且产生core文件
SIGKILL 这个信号用户不能去捕捉它。 进程终止
SIGPIPE 往管道写时,读者已经不在了,或者往一个已断开数据流socket写数据。 进程终止
SIGPOLL 异步I/O,跟SIGIO一样。 进程终止
SIGPROF 有setitimer设置的timer到期引发 。 进程终止
SIGPWR Ups电源切换时 进程终止
SIGQUIT Ctrl+\,不同于SIGINT,这个是会产生core dump文件的。 进程终止并且产生core文件
SIGSEGV 内存非法访问,默认打印出segment fault 进程终止并且产生core文件
SIGSTOP 某个进程停止执行,该信号不能被用户捕捉。 进程暂停执行
SIGSYS 调用 *** 作系统不认识的系统调用。 进程终止并且产生core文件
SIGTERM 有kill函数调用产生。 进程终止
SIGTRAP 有调试器使用,gdb 进程终止并且产生core文件
SIGTSTP Ctrl+z,挂起进程。 进程暂停
SIGTTIN 后台程序要从终端读取成数据时。 进程暂停
SIGTTOU 后台终端要把数据写到终端时。 进程暂停
SIGURG 一些紧急的事件,比如从网络收到带外数据。 忽略
SIGUSR1 用户自定义信号 进程终止
SIGUSR2 用户自定义信号 进程终止
SIGVTALRM 有setitimer产生。 进程终止
首先可以使用 ps -ax 命令,列出后台使用的进程号, 然后再使用 kill -9 进程号即可杀掉后台进程。当然了,如果对 shell 编程非常熟悉的话,也可以使用Linux 系统的管道 *** 作(pipe)来进行 kill 掉后台进程号。
kill[必要参数][选择性参数][进程号]
kill指令发送指定的信号到相应进程。不指定信号时,将发送SIGTERM(15),终止指定进程。若仍无法终止该程序,可用“-KILL”参数,其发送的信号为SIGKILL(9),将强制结束进程。使用ps指令或jobs指令看查看进程号。root用户可以影响任何用户的进程,非root用户只能影响自己的进程。
必要参数具体说明如下:
参数 功能
-l <信号编号>,若不加信号编号参数,则-l参数会列出全部的信号名称
选择性参数的具体说明如下:
参数 功能
-a 当处理当前进程时,不限制指令名和进程号的对应关系
-p 指定kill指令只打印相关进程的进程号,而不发送任何信号
-s 指定发送信号
杀死进程12345
$ kill 12345
当用(1)中的指令不能杀死相关进程时,可以使用“-KILL”参数,强制杀死相应进程。
$ kill -KILL 12345
上述指令将强制杀死进程,但可能系统中被进程占用的某些资源尚未释放,或者可能会留下一些莫名奇妙的文件。
发送SIGHUP信号,可以用下面的指令
$ kill -HUP pid
kill -l可列出kill所能传送的所有信号。
$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE
9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD
18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN
22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO
30) SIGPWR 31) SIGSYS 33) SIGRTMIN 34) SIGRTMIN+1
35) SIGRTMIN+2 36) SIGRTMIN+3 37) SIGRTMIN+4 38) SIGRTMIN+5
39) SIGRTMIN+6 40) SIGRTMIN+7 41) SIGRTMIN+8 42) SIGRTMIN+9
43) SIGRTMIN+10 44) SIGRTMIN+11 45) SIGRTMIN+12 46) SIGRTMIN+13
47) SIGRTMIN+14 48) SIGRTMIN+15 49) SIGRTMAX-14 50) SIGRTMAX-13
51) SIGRTMAX-12 52) SIGRTMAX-11 53) SIGRTMAX-10 54) SIGRTMAX-9
55) SIGRTMAX-8 56) SIGRTMAX-7 57) SIGRTMAX-6 58) SIGRTMAX-5
59) SIGRTMAX-4 60) SIGRTMAX-3 61) SIGRTMAX-2 62) SIGRTMAX-1
63) SIGRTMAX
signal、killall
Linux指令速查手册这书还行。没事可以参考。
netstat -antp 查看所有服务
找到结果名称,然后
pkill -9 服务PID 即可关闭该服务
ps:将某个进程显示出来
-A显示所有程序。
-e此参数的效果和指定"A"参数相同。
-f显示 UID ,PPIP,C与S TIME 栏位。
grep命令是查找
中间的|是管道命令 是指ps命令与grep同时执行
这条命令的意思是显示有关redis有关的进程
2 kill[参数][进程号]
kill -9 4394
kill就是给某个进程id发送了一个信号。默认发送的信号是SIGTERM,而kill -9发送的信号是SIGKILL,即exit。exit信号不会被系统阻塞,所以kill -9能顺利杀掉进程。当然你也可以使用kill发送其他信号给进程。
以上就是关于android怎么用代码实现kill命令全部的内容,包括:android怎么用代码实现kill命令、Linux的kill函数和SIGUSR1信号。、ubuntu怎么kill后台程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)