
fuser能识别出正在对某个文件或端口访问的进程 大家想一下,还有哪个命令具备这个功能 没错,是lsof, 我们前面讲过,
lsof能够找出正在对指定文件访问的进程, 那么它们两者之间有何区别
fuser有一个特别的用法在于它可以一次杀死那些正在访问指定文件的进程 二,如何使用fuser
1,如何用fuser得到正在使用指定文件的进程 用法: fuser 文件
说明:它会把正在使用当前文件的进程id列出 [root@localhost lhd]# umount / umount:
/: device is busy (In some cases useful info about processes that
use the device is found by lsof(8) or fuser(1))
[root@localhost lhd]# fuser / /: 1rc 2rc
3rc 4rc 5rc 6rc 7rc 80rc 82rc 84rc 85rc 153rc
157rc 158rc 160rc 165rc 168rc 203rc
204rc 205rc 253rc 441rc 444rc 516rc 521rc 524rc 582rc 583rc
584rc 633rc 1052rc 1392rc 1394rc 1417rc
1597rc 1609rc 1617rc 1620rc 1683rc 1744rc 1783r
1785rc 1788rc 1806r 1808r 1810rc 1811rc 1812rc
1813rc 1814rc 1815rc 1848rc 1886rc 1899rc 1900rc 2001rc
太多不一一列出 说明:
这些进程号后面的rc是什么意思 c 将此文件作为当前目录使用。 e
将此文件作为程序的可执行对象使用。 r 将此文件作为根目录使用。 s
将此文件作为共享库(或其他可装载对象)使用 2,如何列出进程的详细信息,而不仅仅是进程id 用
-v参数即可 说明: -v: 含义是:verbose output,详细的输出信息 例子:
[root@dev ~]# fuser /var/log /var/log: 4196c
[root@dev ~]# fuser -v /var/log
USER PID ACCESS COMMAND /var/log: root 4196
c bash 3,如何列出进程所属的用户 用 -u参数即可 说明: -u: 含义:display
user IDs,显示用户id 例子: [root@dev ~]# fuser -u
/var/log /var/log: 4196c(root)
4,如何杀死所有正在访问指定文件的进程 用 -k参数即可 说明: -k:含义: kill processes
accessing the named file 例子: [root@localhost lhd]# fuser
-v /root/installlog 用户 进程号 权限 命令
/root/installlog: root 3185 f tail [root@localhost lhd]#
fuser -k /root/installlog /root/installlog: 3185
[root@localhost lhd]# fuser -v /root/installlog 说明:
-k参数能够杀死所有的正在访问指定文件的进程,所以用来杀进程时非常方便 说明之二: fuser如何杀死的进程?
它发送的是这个信号:SIGKILL三,多学一点知识 1,fuser可以列出它所知的信号:
用 -l参数即可 例子: [root@dev ~]# fuser -l HUP INT
QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT
CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
UNUSED 2,fuser可以发送它已知的信号给访问的指定文件进程而代替-k参数默认发送的SIGKILL
例如:只是挂起进程,那么发送HUP信号就可以了 例子: [root@localhost lhd]#
fuser -v /root/installlog 用户 进程号 权限
命令 /root/installlog: root 3347 f tail
[root@localhost lhd]# fuser -k -SIGHUP /root/installlog
/root/installlog: 3347 [root@localhost lhd]# fuser -v
/root/installlog在命令行下输入 tasklist 可以看到进程名
然后再输入:"taskkill /im 进程名"就可以结束了,
如果提示无法终止就加一个 /f 强行终止
提示拒绝访问就说明你没有权限结束该进程
有的杀毒软件有进程保护,有的是双进程,比如卡巴,不能被任何“用户”权限结束掉。
不懂的话E给我:coldwinter2@163com
回答完毕这其实是一个与grep相关联的进程(因为你在ps这个命令中带了grep,在你使用grep的时候,grep也有属于它自己的进程)真正的mysql服务的进程在你停掉mysql服务的时候就已经被全部终止了,既然被全部终止了那就是原来的服务的进程全都不存在了,既然不存在了又怎么杀的掉呢。当你以为还没把它彻底干掉的时候,它早就死了不知道有多长时间了。
代码1如下:
taskkill /im /f /t iexploreexe注意:上面的代码将会关闭IE 浏览器进程,如果要删除别的进程,请将iexploreexe换成别的进程名字。
可以在命令行界面输入taskkill /获取它的详细帮助。
代码2:
wmic process where name="qqexe" call terminatewmic命令是比cmd更强大的命令,有关它的详细请在命令行界面输入wmic / 。
代码3:
powershell命令删除进程,方法如下:
在命令行界面输入powershell,进入powershell界面,然后输入下面的命令:
stop-process -name qqexe -force或
(get-process -name qqexe)kill()
powershell命令比cmd命令更强大,一些使用cmd比较难处理的问题,使用powershell轻而易举的的就可以解决。
ntsd命令:ntsd -c q -p pid
ntsd -c q -pn exe
ntsd -c q -pn iexploreexe
taskkill和tskill命令:
taskkill /pid /f
taskkill /im exe /f
tskill pid | 进程名(不加扩展名)
具体自己看下提示:
ntsd/ tskill/ taskkill/前言,phper 脱离 fpm 学习 swoole GO 时 经常会用一些进程管理命令 这里熟悉下
netstat 命令
Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
常见参数
-a (all) 显示所有选项,默认不显示 LISTEN 相关
-t (tcp) 仅显示 tcp 相关选项
-u (udp) 仅显示 udp 相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服务状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如 uid 等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该 netstat 命令。
提示:LISTEN 和 LISTENING 的状态只有用 - a 或者 - l 才能看到
常见命令
列出所有端口 (包括监听和未监听的)
netstat -a #列出所有端口
netstat -at #列出所有的tcp 端口
netstat -au #列出所有的udp 端口
列出所有处于监听状态的 Sockets
netstat -l #只显示在监听的端口
netstat -lt #只显示所有的在监听的tcp 端口
netstat -lu #只显示所有的在监听的udp 端口
netstat -lx #只显示所有的在监听的unix 端口
在 netstat 输出中显示 PID 和进程名称 netstat -p
netstat -pt #显示所有tcp端口的PID 和进程名称
查找 (经常使用)
netstat -ap | grep xxx #查找程序名为xxx的运行端口
netstat -an | grep ':80' #找出运行在指定端口的进程
PS 命令
PS 是 LINUX 下最常用的也是非常强大的进程查看命令
常用命令
ps -ef | grep 进程关键字 #查找某一进程
参数解释
UID :程序被该 UID 所拥有
PID :就是这个程序的 ID
PPID :则是其上级父程序的ID
C :CPU使用的资源百分比
STIME :系统启动时间
TTY :登入者的终端机位置
TIME :使用掉的CPU时间
CMD :所下达的是什么指令
ps -ax | less # 按向下键查看进程 q 键退出
pstree 树形显示所有进程 pstree -p 9005 树形显示某个端口进程
ps -eo pid,user,args 参数 -e 显示所有进程信息,-o 参数控制输出。Pid,User 和 Args 参数显示 PID,运行应用的用户和该应用。可以查看现在有谁登入了你的服务器
kill 命令
kill -9 PID 可以彻底杀死进程
kill -9 $(ps -ef | grep xxx) 杀死 查找到的所有进程 有点危险!
常用参数
HUP 1 终端断线
INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + )
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)前提:首先你必须知道,端口不是独立存在的,它是依附于进程的。某个进程开启,那么它对应的端口就开启了,进程关闭,则该端口也就关闭了。下次若某个进程再次开启,则相应的端口也再次开启。而不要纯粹的理解为关闭掉某个端口,不过可以禁用某个端口。
1 可以通过"~$ netstat -anp" 来查看哪些端口被打开。
(注:加参数'-n'会将应用程序转为端口显示,即数字格式的地址,如:nfs->2049, ftp->21,因此可以开启两个终端,一一对应一下程序所对应的端口号)
2 然后可以通过"~$ lsof -i:$PORT"查看应用该端口的程序($PORT指对应的端口号)。或者你也可以查看文件/etc/services,从里面可以找出端口所对应的服务。
(注:有些端口通过netstat查不出来,更可靠的方法是"~$ sudo nmap -sT -O localhost")
3 若要关闭某个端口,则可以:
1)通过iptables工具将该端口禁掉,如:
"~$ sudo iptables -A INPUT -p tcp --dport $PORT -j DROP"
"~$ sudo iptables -A OUTPUT -p tcp --dport $PORT -j DROP"
2)或者关掉对应的应用程序,则端口就自然关闭了,如:
"~$ kill -9 PID" (PID:进程号)
如: 通过"~$ netstat -anp | grep ssh"
有显示: tcp 0 127001:2121 0000: LISTEN 7546/ssh
则: "~$ kill -9 7546"
(可通过"~$ chkconfig"查看系统服务的开启状态)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)