大家好,我是pual,今天我们来分享一下kill掉用户进程的方法,或者说kill制定进程的方法
首先我们可以选择kill -l来列出所有全部的信号名称
killall命令并不是自带的,需要安装,在centos下安装方法如下:
yum install psmisc
Killall进程杀不死自己,但可以杀死其他killall进程。
常用的仍然是
HUP(终端断线),
INT(中断,同<Ctrl> c),
QUIT(退出,同<Ctrl> \),
KILL(强制终止),
TERM(缺省信号,终止,正常结束),
CONT(继续,同fg/bg命令),
STOP(停止),
TSTP(暂停,同<Ctrl> Z)
killall实例:
Killall nginx/killall -9 bash 杀死所有同名的进程
Killall -TERM nginx/killall -KILL nginx 发送指定的命令
先说一下kill的命令格式
Kill[参数][进程
-l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a 当处理当前进程时,不限制命令名和进程号的对应关系
-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s 指定发送信号
-u 指定用户
只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。
下面是常用的信号:
HUP 1 终端断线
INT 2 中断(同 Ctrl C)
QUIT 3 退出(同 Ctrl \)
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl Z)
程序运行也会产生进程 如果说要关闭程序 也可使用kill来实现 原理就是杀死进程 程序自动也就关闭了 但是kill只能说是杀死单个进程 一个个来弄太过于麻烦 这时候我们可以来用pkill跟killall来实现
这是例子程序是httpd
Pkill -9 httpd或者是killall -9 httpd
也可以用来提出登陆的用户
w来查看用户登录信息
Who am i查询当前你自己的身份
然后来用 pkill -kill -t 终端
Pkill -u 用户名
还可以得到制定信号的数值
kill -l KILL 9
kill -l SIGKILL 9
kill -l TERM 15
kill -l SIGTERM 15
但是大多数我用的方法都是先用ps查找到进程然后kill杀掉
Kill 1238
彻底杀死进程
Kill -9 1238
友情提示下:在使用kill时 如果使用的是信号9命令 强制终止的 可能会丢失数据或者说终端无法恢复到正常状态 在使用kill向进程发送信号的时候 必须是进程的主人 要么会报错