1)kill - terminate a process
语法
kill[选项][进程号]
选项
-l 打印信号编号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a 当处理当前进程时,不限制命令名和进程号的对应关系
-p 只打印相关进程的进程号,而不发送任何信号
-s 指定发送信号
-u 指定用户,kill某个用户的所有进程
Kill命令工作原理:
向Linux内核发送一个系统操作信号和某个程序的进程标识号,然后系统内核就可以对进程标识号指定的进程进行操作
信号
HUP 1 重载配置文件
INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)
应注意,信号使进程强行终止,这常会带来一些副作用,如数据丢失或者终端无法恢复到正常状态。发送信号时必须小心,只有在万不得已时,才用kill信号(9),因为进程不能首先捕获它。要撤销所有的后台作业,可以输入kill 0。因为有些在后台运行的命令会启动多个进程,跟踪并找到所有要杀掉的进程的PID是件很麻烦的事。这时,使用kill 0来终止所有由当前shell启动的进程,是个有效的方法。
kill -9 强制结束
kill -0 检测进程是否存在
如何调整优先级
注意:普通用户只能降低程序的优先级 不能提高程序优先级,root随便
2)killall
Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name)
命令格式:
killall[选项][进程名]
命令选项:
-I 忽略小写
-g 杀死进程组而不是进程
-i 交互模式,杀死进程前先询问用户
-l 列出所有的已知信号名称
-q 不输出警告信息
-s 发送指定的信号
-v 报告信号是否成功发送
-w 等待进程死亡
—help 显示帮助信息
—version 显示版本显示
-u:杀死指定用户的进程
-r:使用正规表达式匹配要杀死的进程名称
-p:杀死进程所属的进程组
二、进程优先级管理
进程优先级管理
nice - run a program with modified scheduling priority
语法
nice [OPTION] [COMMAND [ARG]…]
选项
-n add integer N to the niceness (default 10)
设定一个优先级 默认为10
linux porcess 优先级为-20 - 19 数字越小优先级越大
调整优先级命令nice
nice —19 ping -c 500 localhost -19优先级
nice -19 ping -c 500 localhost 19优先级
renice - alter priority of running processes
renice -n -19 -p 16863
renice -n -20 -u root
0 (用户 ID) 旧优先级为 -10,新优先级为 -20