来自 操作系统 2019-12-04 16:28 的文章
当前位置: 澳门威尼斯人平台 > 操作系统 > 正文

结束普通方法无法结束的进程

 使用ntsd程序 (如果安装过VS,在VS的安装目录下,比如“C:Program Files (x86)Debugging Tools for Windows (x86)ntsd.exe”,也可以在这里下载)

 

 

adb server is out of date.  killing...
ADB server didn't ACK
* failed to start daemon *
error: unknown host service

 

使用adb时,若出上面的错,使用adb kill-server是没有用的,因为此时是其他进程的监听了端口,而不是adb。我用cmd+命令管理器解决:

输入netstat -ano | findstr "5037"  

找到下列进程

澳门威尼斯人注册网站,  TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       4236  

  TCP    127.0.0.1:5037         127.0.0.1:49422        ESTABLISHED     4236  

  TCP    127.0.0.1:49422        127.0.0.1:5037         ESTABLISHED     3840  

此时把4236这个进程结束就行了。

TASKLIST | findstr "4236"

我的是被一个叫tadb.exe的挟持了,貌似是qqmusic的进程,结束它,over

澳门威尼斯人注册网站 1

  最近在做一个类似与任务管理器的东西,里面有个功能,可以通过这个管理器结束掉其他的进程。

在linux系统管理中,我们有时候需要结束掉某个用户的所有进程。初学者一般会先查询出用户的所有pid,然后一条条kill结束掉,或者写一个脚本。实际上结束的方法有很多,博主这边总结了下面4种方法,以kill用户zhangnq为例。

ntsd -c q -p PID
ntsd -c q -pn PName

  在Android平台下,结束进程的方法还是比较多的。首先指明,此处的“结束进程”,包含了结束自身进程和结束其他进程两个方面。通过查阅SDK文档和网上的一些资料,自己找到一些结束进程的方法。在这里做一些归纳和总结,文章的部分信息有可能来自网上已有的文章和帖子,由于过了比较长时间,所以若发现本文与其他文章雷同,请谅解。

  1. pkill方式

    # pkill -u zhangnq

  2. killall方式

    # killall -u zhangnq

  3. ps方式 ps列出zhangnq的pid,然后依次kill掉,比较繁琐。

    # ps -ef | grep zhangnq | awk '{ print $2 }' | xargs kill -9

  4. pgrep方式 pgrep -u参数查出用户的所有pid,然后依次kill

    # pgrep -u zhangnq | xargs kill -9

两种方法

一、结束一个活动Activity

...

一种是使用进程的ID号,将PID换成对应进程ID号即可

  要主动的结束一个活动Activity,(先强调一下,是结束一个活动,而不是进程)众所周知,肯定是finish方法啦,这个就毋庸置疑了,而且这个方法最后会调用Activity的生命周期函数onDestroy方法,结束当前的Activity,从任务栈中弹出当前的Activity,激活下一个Activity。当然其他的finish系列方法,我们不在这里做详细讨论,有兴趣的同学可以自己查阅一下SDK 的文档。

一种是使用进程的名称,将PName换成对应的exe名字即可,比如notepad.exe

二、强制结束当前的进程

为了方便,写了个批处理,将该批处理和ntsd放在一起,使用时执行批处理,选择对应的方式,并输入参数即可。

  强行结束当前进程有两个方法。(呵呵,这里就是结束进程了)

@ECHO OFF
TITLE 结束使用普通方法无法结束的进程
COLOR 0A
MODE con: COLS=62 LINES=22

:MENU
set tm1=%time:~0,2%
set tm2=%time:~3,2%
set tm3=%time:~6,2%
ECHO.  %date% %tm1%点%tm2%分%tm3%秒 
ECHO.   ========================================
ECHO.   请选择要进行的操作,然后按回车
ECHO.   ────────────────────
ECHO.  1    根据进程号PID结束进程
ECHO.  2    根据进程名称结束进程

ECHO.  0    退出
ECHO.
ECHO.请输入选择项目的序号:

set /p choose=
if "%choose%" equ "" goto MENU
if %choose%==1 goto killusingpid
if %choose%==2 goto killusingname
if %choose%==0 goto END

ECHO. 输入错误,请输入正确的项目序号:
goto MENU

:killusingpid
set choose=
ECHO.请输入进程号PID,然后按回车
set /p proid=
set /a i=0
:kpid
ntsd -c q -p %proid%
if %i% GEQ 10 ( ( echo 结束进程%proid%失败 ) & goto MENU )
set /a i=%i%+1
echo 结束进程%proid%第%i%次
tasklist | findstr /i %proid% && ( goto kpid )
echo 结束进程ID为%proid%的程序成功或进程ID:%proid%不存在
GOTO MENU

:killusingname
set choose=
ECHO.请输入进程的名称(比如notepad.exe),然后按回车
set /p proname=
set /a i=0
:kpname
ntsd -c q -pn %proname%
if %i% GEQ 10 ( ( echo 结束程序%proname%失败 ) & goto Menu )
set /a i=%i%+1
echo 结束程序%proname%第%i%次
tasklist | findstr /i %proname% && goto kpname
echo 结束程序%proname%成功或程序:%proname%未启动

GOTO MENU

:END
exit

  1、killProcess(int pid)              例子:android.os.Process.killProcess(android.os.Process.myPid());

本文由澳门威尼斯人平台发布于操作系统,转载请注明出处:结束普通方法无法结束的进程

关键词: