Linux~~进程管理process-2020.11.23

Linux系统–进程管理process:

man ls ----(会显示ls手册,关于ls说明 类似于help)

一、静态查看进程ps(静态:一瞬间的显示 不实时)
静态查看进程ps:

[root@localhost tmp]# ps aux |head -2
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 128236 6940 ? Ss 10:50 0:04 /usr/lib/systemd/systemd --switched-root --system --deserialize 22

分析: USER:运行进程的用户
PID :进程ID
%CPU:CPU占用率
%MEM:内存占用率
VSZ :占用虚拟内存(硬盘上的一部分空间)
RSS :占用实际内存(占了多少字节)
TTY :进程运行的终端(?:没有打开终端 系统没有终端)
STAT:进程状态 R :运行 S:可中断的睡眠状态 T:停止的进程 Z:僵尸进程 (退出状态)X:死掉的进程 D:不可中断的睡眠状态 X:退出状态,进程即将被销毁(死掉的进程)
START:进程的启动时间
TIME:进程占用CPU的总时间 分钟:秒(0:01—1秒)
COMMAND(命令):进程文件,进程名,路径
.
四大资源:MEM内存 :起到缓冲作用 程序在运行时占内存(先从硬盘上复制到内存上运行)
disk IO磁盘 :程序运行时会占用disk的IO
CPU :运算
net :网络

进程排序: (sort:排序 用来查看四大资源)

[root@localhost ~]# ps aux --sort %cpu |head -5 (给CPU排序%cpu:升序-%cpu降序)
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          2  0.0  0.0      0     0 ?        S    09:05   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    09:05   0:00 [kworker/0:0]
root          4  0.0  0.0      0     0 ?        S<   09:05   0:00 [kworker/0:0H]
root          5  0.0  0.0      0     0 ?        S    09:05   0:00 [kworker/u256:0]

[root@localhost ~]# ps aux --sort -%cpu |head -5 (降序)

显示当前终端类型:
[root@localhost ~]# tty
/dev/pts/1

三个终端:
终端一:root用户用vim打开文档1
终端二:user01用户用vim打开文档2
终端三:root用户输入ps aux | grep vim 查看进程
结果:[root@localhost ~]# ps aux |grep vim
root 3228 0.1 0.3 149796 5600 pts/0 S+ 09:32 0:00 vim 123
user01 3314 0.2 0.2 149696 5500 pts/1 S+ 09:32 0:00 vim 456
root 3353 0.0 0.0 112728 972 pts/2 R+ 09:32 0:00 grep --color=auto vim
最后一个是当前搜索时的vim (可查看谁在使用计算机,在做什么)

进程的父子关系: PID:进程的ID

[root@localhost ~]# ps -ef |head -5  (PID和PPID)(PPID是PID的父系)
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  1 17:41 ?        00:00:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2      0  0 17:41 ?        00:00:00 [kthreadd]
root          3      2  0 17:41 ?        00:00:00 [kworker/0:0]
root          4      2  0 17:41 ?        00:00:00 [kworker/0:0H]  (父系是2--[kthread])

自定义显示字段:[root@localhost ~]# ps axo user,pid,ppid |head -3 (定义显示user,pid,ppid)
USER PID PPID
root 1 0
root 2 0

可显示进程有多少行:[root@localhost ~]# ps aux |wc -l
212
[root@localhost ~]# ls /tmp |wc -l(也适用)
83

将文件的大小以单位形式显示:
[root@localhost ~]# ll /usr/bin/passwd -h
-rwsr-xr-x. 1 root root 28K 8月 9 2019 /usr/bin/passwd (文件大小28K)
[root@localhost ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27856 8月 9 2019 /usr/bin/passwd(文件大小27856)

	[root@localhost ~]# ps aux --sort %cpu | ll -h | head -4
	总用量 20K
	-rw-r--r--. 1 root root    0 11月 19 09:23 1.txt
	-rw-r--r--. 1 root root    7 11月 19 09:33 77
	-rw-r--r--. 1 root root   15 11月 17 19:52 9
	-rw-------. 1 root root 1.7K 11月 17 09:52 anaconda-ks.cfg

二、动态查看进程top

输入top后 显示的上半部分
[root@localhost ~]# top
top - 09:46:37 up 41 min, 2 users, load average: 0.07, 0.05, 0.05
程序名 当前系统时间 系统运行时间 时:分 当前登录用户数 系统(CPU)负载 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值

Tasks: 207 total, 1 running, 206 sleeping, 0 stopped, 0 zombie
进程总数:207 运行数1 睡眠数206 停止数0 僵死数0

%Cpu(s): 4.9 us, 2.1 sy, 0.0 ni, 93.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
CPU使用占比 用户占得百分比 系统占用的 用户进程空间内改变过优先级的进程占用CPU百分比 空闲CPU百分比 等待输入输出的CPU时间百分比 硬件CPU中断占用百分比 软中断占用百分比 虚拟机占用百分比

KiB Mem : 1863076 total, 536072 free, 775688 used, 551316 buff/cache
物理内存 物理内存总量 空闲内存总量 使用的物理内存总量 内核(cache)缓存硬盘内容的内存量

KiB Swap: 2097148 total, 2097148 free, 0 used. 908600 avail Mem
交换空间 交换区总量 空闲交换区总量 使用的交换区量

内存空间 :G M K (top的KiB Mem 和KiB Swap 的free )
[root@localhost ~]# free -g 单位是 G
total used free shared buff/cache available
Mem: 1 0 0 0 0 0
Swap: 1 0 1
[root@localhost ~]# free -k单位是K
total used free shared buff/cache available
Mem: 1863076 929372 332784 30408 600920 736948
Swap: 2097148 0 2097148

常用指令:
h或? :帮助
M : 按内存的使用排序
P :按CPU使用排序
N :以PID的大小排序
< : 向前
> : 向后
z :彩色,直接切换颜色
Z :设置彩色,使用数字调整
快捷键:按“b”打开高亮显示功能,然后按“x”打开排序高亮显示
使用cpu的总时间TIME+来排序按 “M”键
cpu排序,需要按“P”键

刷新:

     [root@localhost ~]# top  回车  立即刷新(3s一次)
     [root@localhost ~]# top -d 1 每1s刷新 
     [root@localhost ~]# top -d1 -p 3213 每1s刷新一次PID为3213的进程
     [root@localhost ~]# top -d1 -p 3213,1516 可查看多个

使用信号控制进程kill:
kill -编号 PID

  1. SIGHUP 重新加载配置
  2. SIGINT 键盘中断Ctrl+C
  3. SIGQUIT 键盘退出Ctrl+\,类似SIGINT
  4. SIGKILL 强制终止,无条件
  5. SIGTERM 终止(正常结束),缺省信号相当于exit
  6. SIGCONT 继续
  7. SIGSTOP 暂停
    20)SIGTSTP 键盘暂停Ctrl+Z

验证:
1、终端1 root@localhost ~]# vim file1
2、终端2 root@localhost ~]# vim file2
3、终端3

[root@localhost ~]# ps aux |grep vim
root 8841 0.0 0.2 149696 5508 pts/0 S+ 17:48 0:00 vim file1
root 8886 0.0 0.2 149696 5508 pts/2 S+ 17:48 0:00 vim file2

4、分别发送信号 给两个file

[root@localhost ~]# kill -15 8841
[root@localhost ~]# kill -9 8886

两个终端 file1被终止 file2被杀死

进程优先级nice:
Linux进程调度及多任务:每个CPU在一个时间点上只能处理一个进程,通过时间片技术,来同时运行多个程序。
优先级图示
在top中显示的优先级有 PR值和nice值
NI : 实际nice值 (可修改)
PR :PR值=NI值+20 (不可修改)

优先级特性:nice值越大 ;优先级越低; 反之亦然

查看优先级排序:ps axo :自定义显示字段

[root@localhost ~]# ps axo pid,command,nice --sort=-nice | head -5
PID COMMAND NI
32 [khugepaged] 19
743 /usr/sbin/alsactl -s -n 19 19
2570 /usr/libexec/tracker-extrac 19
2573 /usr/libexec/tracker-miner- 19

启动进程时,通常会继承父进程的 nice级别,默认为0。
手动设置不同的优先级:
[root@localhost ~]# nice -n -6 sleep 500 & 设置程序的优先级为 -6
[7] 11402
oot@localhost ~]# ps axo command,pid,nice --sort=-nice | grep sleep
sleep 60 11428 0
grep --color=auto sleep 11431 0
sleep 5000 9978 -5
sleep 500 11402 -6
sleep 6000 9963 -15

作业控制jobs:
作业控制是一个命令功能,也叫后台运行
后台程序控制实例:
1、观察占领前台的现象
[root@localhost ~]# sleep 500
^C
[root@localhost ~]#
运行一个程序,当前终端无法输入,观察占领前台的现象,大部分命令行输入已经无效 可用Ctrl+C或Ctrl+Z或Ctrl+/ 可结束当前进程
2、运行后台程序
[root@localhost ~]# sleep 500 &
使此进程在后台运行 不妨碍当前操作
3、ps查询所有程序

[root@localhost ~]# ps aux |grep sleep
root 9323 0.0 0.0 107956 612 ? S 19:14 0:00 sleep 60
root 9332 0.0 0.0 107956 616 pts/1 S 19:15 0:00 sleep 500

4、jobs查看后台进程(jobs只能在当前终端查询出当前设置的后台进程)
(了解)

[root@localhost ~]# jobs
[1] 运行中 sleep 500 &
[2]- 运行中 sleep 5666 &
[3]+ 运行中 sleep 566 &

+,-代表,使用fg时,默认调动至前台的进程。先是+,后是-(+是最后一个进程 -是倒数第二个上显示的)
5、调动后台程序至前台
foreground fg 前台进程:是在终端中运行的命令,占领终端。
background bg 后台进程:没有控制终端,它不需要终端的交互。看不见,但是在运行。
root@localhost ~]# fg 2
sleep 5666
^C
[root@localhost ~]#
将后台程序[2]调到前台进行 可用Ctrl+c结束进程
[1]- 运行中 sleep 500 &
[3]+ 运行中 sleep 566 &
[root@localhost ~]# fg
sleep 566
fg默认调动最后一个
Ctrl +Z将调出的程序放回后台并停止
bg 1 让[1] 回后台继续运行
6、消灭后台进程
[root@localhost ~]# jobs
[1]- 运行中 sleep 500 &
[2]+ 运行中 sleep 9652 &
[root@localhost ~]# kill %1
[1]- 已终止 sleep 500
注意:kill 1 :终止 PID 为1的进程
kill %1 :杀死作业序号为1的后台程序

更改现有进程的nice级别:
1、创建一个睡眠后台程序
[root@localhost ~]# sleep 852&
[3] 9551
2、修改它的nice值

[root@localhost ~]# ps axo command,pid,nice | grep sleep
sleep 6000 9963 -5
sleep 5000 9978 -5
sleep 60 10062 0
[root@localhost ~]# renice -15 9963
9963 (进程 ID) 旧优先级为 -5,新优先级为 -15

查证:

[root@localhost ~]# ps axo command,pid,nice | grep sleep
sleep 6000 9963 -15
sleep 5000 9978 -5
sleep 60 10096 0

查证:

[root@localhost ~]# ps axo command,pid,nice --sort=-nice | grep sleep
sleep 60 10563 0
grep --color=auto sleep 10600 0
sleep 5000 9978 -5
sleep 6000 9963 -15
[root@localhost ~]# top -p 9978 (可只查看一个进程)
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
9978 root 15 -5 107956 616 520 S 0.0 0.0 0:00.00 sleep
PR 15
NI -5

虚拟文件系统proc(了解):
采集服务器自身 内核、进程运行的状态信息
CPU:/proc/cpuinfo
[root@localhost ~]# cat /proc/cpuinfo
内存:/proc/meminfo
[root@localhost ~]# cat /proc/meminfo
内核:/proc/cmdline
[root@localhost ~]# cat /proc/cmdline

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值