windows环境
查询进程pid
1、根据ImageName查询:tasklist
常用命令:
tasklist /svc | findstr adb #返回结果的第二列就是pid
tasklist /v | findstr adb #返回结果的第二列就是pid
# /svc 显示每个进程中主持的服务。
# /v 指定要显示详述信息。
tasklist的其他参数可以通过以下方式查看(这里就不罗列啦):
tasklist /?
2、根据占用的端口查询:netstat(命令用于显示各种网络相关信息,如网络连接)
常用指令:
netstat -nao | findstr 占用端口号 #输出结果的最后一列是pid
# /n 以数字形式显示地址和端口号。
# /a 显示所有连接和侦听端口。
# /o 显示拥有的与每个连接关联的进程 ID
netstat的其他参数可以通过以下方式查看(这里就不罗列啦):
netstat /?
杀进程
使用taskkill指令
1、根据pid来杀进程(pid的获取方式前面已经介绍过)
taskkill /f /pid 5525
2、根据ImageName杀进程(ImageName要全称,所以不推荐)
taskkill /f /im cmd.exe
taskkill的其他参数可以通过“/?”参数来获取噢
linux环境
查询进程pid
1、根据进程名查询pid
① 使用ps指令
ps -ef | grep firefox #结果的第一列就是pid噢
ps -aux |grep firefox
② 使用pgrep指令(有些查询不到)
pgrep firefox #直接返回pid
③ 使用netstat(有些查询不到)
netstat -p |grep firefox
2、根据占用端口查询pid
① 使用lsof指令
lsof -i:4723
② 使用ss指令
ss -lp |grep 4723
③ 使用netstat指令
netstat -apn |grep 4723
杀进程
1、 使用pid杀进程
kill -s 9 pid
2、使用进程名杀
pgrep firefox | xargs kill -s 9
# xargs是把前面的输出作为后面指令的参数
pkill #pgrep+kill
pkill -9 firefox
注意:pkill与kill在这点的差别是:pkill无须 “s”,终止信号等级直接跟在 “-“ 后面。
各种信号及其用途
参考:http://blog.csdn.net/andy572633/article/details/7211546#
kill、pkill、killall区别
1、kill是根据pid来杀进程;而后两者是根据进程名来哈进程的,所以是批量删除的,存在一定危险。
2、kill杀进程时需要在“-”后面添加“s”,然后加空格和信号;而后两者不用“s”,直接在“-”后面添加信号(不用空格)
3、pkill和pgrep后的进程名可以不完整,而killall的进程名必须完整的