菜单
本页目录

12 进程管理

## 查看kill级别
[root@localhost ~]# kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+15	50) SIGRTMAX-14	51) SIGRTMAX-13	52) SIGRTMAX-12
53) SIGRTMAX-11	54) SIGRTMAX-10	55) SIGRTMAX-9	56) SIGRTMAX-8	57) SIGRTMAX-7
58) SIGRTMAX-6	59) SIGRTMAX-5	60) SIGRTMAX-4	61) SIGRTMAX-3	62) SIGRTMAX-2
63) SIGRTMAX-1	64) SIGRTMAX

1、ps

1.1、概念

进程组成部分:
			已分配的地址空间
			进程ID(PID)
			程序的代码
			进程状态:运行中、等待运行、睡眠等

cpu数量、内核数量
进程优先级:影响进程运行时间
		  优先级越高,同等代码量运行更早结束
进程管理:进程调度、中断处理、信号、进程优先级、进程切换、进程状态、进程内存等

进程的生命周期:

image-20220919140052072

PID:
	CentOS 5、6:PID1:init
	CentOS7:PID1:systemd

僵尸进程:不执行代码、占用内存地址空间(kill不能杀死,已执行成功)
		解决僵尸进程:	
				等待父进程响应
				杀死父进程
				所父进程为init或systemd,则重启解决

线程:	在同一进程中,进程中产生的一个执行单元,进程中线程并列运行
		线程之间可以资源共享(如:内存、地址空间、打开文件等)

上下文切换:	
		(CPU切换)不能有太多上下文切换,每次切换要刷新寄存器和高速缓存区,以便释放空间给新进程

中断处理:优先级最高任务之一
		由I/O产生(in、out)
		硬中断:硬件产生
		软中断:被用来处理可以推迟的任务,协议等

1.2、进程属性

PID:进程ID
PPID:父进程ID			#通过ps	-ef	  查看

UID、GID
进程状态:R运行、S睡眠、Z僵尸

进程执行的优先级

进程所连接的终端名:有些无终端,脱离终端,例如一些服务

资源占用:%CPU、%MEM

1.3、ps

## 查看进程

$ ps aux
$ ps -aux (与上一个命令效果一样)

		a:	显示当前终端关联的所有进程
		u:基于用户的格式显示
		x:显示所有进程,不以终端机来区分
		
## ps 命令显示完整command
$ ps -auxww

每列的意思:

USER   PID     %CPU        %MEM       VSZ   RSS      TTY    STAT     START           TIME              COMMAND
用户   进程id	cpu占用比    内存占用比                  终端    状态     命令启动时间      命令实际执行时间     执行的命令


VSZ:占用虚拟内存大小(kb)(申请的)

RSS:占用物理内存大小(kb)(实际使用的)

stat:Linux进程的5中基本状态:
				R:正在运行,准备运行
				S:睡眠中,可被某些讯号(signal)唤醒
				T:停止
				Z:僵尸
				D:不可中断,存在于I/O(in/out)情况下
				5种基本状态后还可以加:
							<		进程运行在高优先级上
							N		进程运行在低优先级上
							L		锁定在内存中
							s		控制进程
							l		多线程
							+		运行在前台
							
stat:进程触发启动时间
time:进程实际使用CPU时间
command(CMD):进程实际指令
注意:最后一列[xxx]:
				   括起来的进程是内核态
				   没有括起来的用户态进程

注:

ctrl+c 		发送sigint信号,终止一个进程
ctrl+z 		发送sigstop信号,挂起一个进程,将作业放置后台(暂停)
ctrl+d 		EOF,输入完成或者注销

练习:

终端1:tar 压缩

[root@localhost ~]# tar -zcvf /root/etc.tar.gz  /etc

终端2:ps aux #查看

[root@localhost ~]# ps aux |grep etc.tar.gz |grep -v grep
root      31720  0.0  0.1 123712  1376 pts/1    R+   16:14   0:00 tar -zcvf /root/etc.tar.gz /etc
[root@localhost ~]# ps aux |grep etc.tar.gz |grep -v grep
root      31720  8.2  0.1 123748  1492 pts/1    S+   16:14   0:00 tar -zcvf /root/etc.tar.gz /etc

2、ps -ef

[root@localhost ~]# ps -ef		# 显示进程,能得到ppid
							-e 	# 显示所有进程
							-f 	# 显示完整格式输出

练习:测试CPU实际使用时间

  • 终端1:创建指定bs=1M,count=3000大小的yq.txt文件
[root@localhost ~]# dd if=/dev/zero of=/root/yq.txt bs=1M count=3000
记录了3000+0 的读入
记录了3000+0 的写出
3145728000字节(3.1 GB)已复制,37.0355 秒,84.9 MB/秒
  • 终端2:ps aux查看
[root@localhost ~]# ps aux |grep yq.txt |grep -v grep
root      31738 49.0  0.1 109032  1412 pts/0    R+   16:18   0:00 dd if=/dev/zero of=/root/yq.txt bs=1M count=3000
[root@localhost ~]# ps aux |grep yq.txt |grep -v grep
root      31738 51.0  0.1 109032  1412 pts/0    D+   16:18   0:01 dd if=/dev/zero of=/root/yq.txt bs=1M count=3000
2.1、time 命令
  • 查看命令执行时间

time 命令

[root@localhost ~]# time ls
anaconda-ks.cfg  etc.tar.gz  ps.sh  yq.txt

real	0m0.003s			#实际执行时间
user	0m0.000s			#用户执行时间
sys	0m0.003s				#内核执行时间
2.2、free
  • 查看物理内存、交换分区内存使用情况
	-m			#Mb单位显示
	-g			#Gb单位显示
	-h			#常见单位显示
[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           972M        100M         78M        7.7M        792M        682M
Swap:          299M          0B        299M
MEM:物理内存

swap:交换分区所占内存
	total     used     free      shared	   buff/cache      available
	总空间     已用      空闲      共享       缓存/缓冲        可用大小
										   内存读/写
																										
free、available大小关系受缓存/缓冲影响
			free>available			缓存/缓冲占用available一部分
			free<available			缓存/缓冲未占用,available总和比free大