进程管理2 kill & nice优先级 & jobs

接上篇:https://blog.csdn.net/qq_45955904/article/details/110141588
1.拓展:top有关命令
1)终端命令
top -d n 每隔n秒刷新一次动态进程
[root@localhost ~]# top -d 1
每隔1秒刷新一次动态进程
top -d n -p pid1,pid2 查看指定进程的动态信息
[root@localhost ~]# top -d 1 -p 2411,3038 查看2411号和3038号进程动态
在这里插入图片描述2)在top的动态进程中,输入以下命令:
M 按内存占用大小排序
P 按CPU占用大小排序
N 以PID的大小排序
2.使用信号控制进程kill
给进程发送信号(kill -l列出所有支持的信号)
[root@localhost ~]# kill -l
编号 信号名
1) SIGHUP 重新加载配置
2)SIGINT 键盘中断Ctrl+C
3)SIGQUIT 键盘退出Ctrl+\,类似SIGINT
9) SIGKILL 强制终止,无条件
15)SIGTERM 终止(正常结束),缺省信号
18)SIGCONT 继续 激活进程
19)SIGSTOP 暂停 挂起进程
20)SIGTSTP 键盘暂停 Ctrl+Z
例子:
1) 创建2个文件,查看终端号。
[root@localhost ~]# touch file1 file2

2 )通过一个终端,打开一个vim
[root@localhost ~]# vim file1

3) 通过另一个终端,打开一个vim
[root@localhost ~]# vim file2

4) 通过另一个终端,查询两个进程。
[root@localhost ~]# ps aux |grep vim
root 4362 0.0 0.2 11104 2888 pts/1 S+ 23:02 0:00 vim file1
root 4363 0.1 0.2 11068 2948 pts/2 S+ 23:02 0:00 vim file2

5) 发送信号15 和信号9 ,观察两个终端程序状态。
[root@localhost ~]# kill -15 4362
[root@localhost ~]# kill -9 4363
观察两个终端,一个正常终止,一个非法杀死。
3.进程优先级nice
1)简介
每个进程都有相应的优先级,优先级决定它何时运行和接收多少 CPU 时间。
2)优先级范围和特性
优先级图示
在这里插入图片描述系统中的两种优先级
在top中显示的优先级有两个,PR值和nice值

NI: 实际nice值
PR(+20): 将nice级别显示为映射到更大优先级队列,-20映射到0,+19映射到39
PR值=NICE值+20
(通过改变nice值间接改变PR值)
优先级特性
nice 值越大: 表示优先级越低,例如+19
nice 值越小: 表示优先级越高,例如-20
3)查看进程的nice级别
[root@localhost ~]# ps axo pid,command,nice --sort -nice
4)设定进程的优先级
特殊符:& 后台运行符 即把程序放到后台执行。
命令:sleep 休眠
sleep 50 休眠50s

[root@localhost ~]# nice -n -5 sleep 6000 &
[1] 5326
[root@localhost ~]# nice -n -13 sleep 5000 &
[2] 5341
[root@localhost ~]# sleep 4000 &
[3] 5348
查看设定优先级
[root@localhost ~]# ps axo command,pid,nice | grep sleep
sleep 6000 5326 -5
sleep 5000 5341 -13
sleep 4000 5348 0
(启动进程时,通常会继承父进程的 nice级别,默认为0。)
5)修改nice值 renice
renice 优先级 pid进程id
使用shell更改nice级别
1 创建一个睡眠示例程序。
[root@localhost ~]# sleep 7000 &
[2] 2669

2 修改nice值。
[root@localhost ~]# renice -20 2669
2669 (进程 ID) 旧优先级为 0,新优先级为 -20,观察修旧的nice值。
4.作业控制 jobs
1)简介
作业控制是一个命令行功能,也叫后台运行。
前台进程 fg(foreground):是在终端中运行的命令,占领终端。
后台进程 bg(background):没有控制终端,它不需要终端的交互。看不见,但是在运行。
2)观察占领前台的现象
[root@localhost ~]# sleep 2000
运行一个程序,当前终端无法输入。观察占领前台的现象。
大部分命令行输入已经无效。
ctrl + c 终止进程
3)运行后台程序
[root@localhost ~]# sleep 3000 &
4)ps查询所有程序。
[root@localhost ~]# ps aux |grep sleep
root 8895 0.0 0.0 100900 556 pts/0 S 12:13 0:00 sleep 3000
5) jobs查看后台进程
[root@localhost ~]# jobs
[1]+ Running sleep 3000 &
+,-代表,使用fg时,默认调动至前台的进程。+优先。
6)调动后台程序至前台
fg 序号
[root@localhost ~]# fg 1 //将作业1调回到前台
7)消灭后台进程
kill %工作号
[root@localhost ~]# kill %1
8)总结:
& 后台运行程序
jobs 查询后台进程
fg 序号 把进程从后台调到前台
Ctrl+Z 挂起 把进程提到后台
bg 序号 使进程继续在后台运行
kill %工作号 停止后台进程
[root@localhost ~]# sleep 3000 &
[1] 3050
[root@localhost ~]# ps aux | grep sleep
root 3050 0.0 0.0 107956 616 pts/0 S 19:51 0:00 sleep 3000
[root@localhost ~]# jobs
[1]+ 运行中 sleep 3000 &
[root@localhost ~]# sleep 40000 &
[2] 3097
[root@localhost ~]# jobs
[1]- 运行中 sleep 3000 &
[2]+ 运行中 sleep 40000 &
[root@localhost ~]# fg
sleep 40000
^Z(Ctrl+Z)
[2]+ 已停止 sleep 40000
[root@localhost ~]#
[root@localhost ~]# jobs
[1]- 运行中 sleep 3000 &
[2]+ 已停止 sleep 40000
[root@localhost ~]# bg
[2]+ sleep 40000 &
[root@localhost ~]# jobs
[1]- 运行中 sleep 3000 &
[2]+ 运行中 sleep 40000 &
[root@localhost ~]# kill %2
[2]+ 已终止 sleep 40000
[root@localhost ~]# jobs
[1]+ 运行中 sleep 3000 &
5.虚拟文件系统 proc
1)简介
虚拟文件系统proc(process进程目录):采集服务器自身 内核、进程运行的状态信息
[root@localhost ~]# ls /proc/
2)查看CPU /proc/cpuinfo
[root@localhost ~]# cat /proc/cpuinfo
3)查看内存 /proc/meminfo
[root@localhost ~]# less /proc/meminfo
4)查看内核 /proc/cmdline
[root@localhost ~]# cat /proc/cmdline

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值