文章目录
进程管理
1 进程
运行中的程序(动态,执行时将程序加载到内存上)
- 程序(可执行的二进制文件)
- C/C++
源代码——编译——链接——程序 - Java
源代码——编译——字节码文件——JVM(java虚拟机)
- C/C++
2 进程的状态:
- 创建
- 就绪
- 运行:CPU,执行进程中的指令
- 结束
- 阻塞
时间片轮转法:CPU的执行时间划分为很小的时间片,每个进程在CPU上运行时,一次之分配一个时间片
3 进程的记录
- Linux:/proc,虚拟目录(以进程为单位存储,内存映射)
- 进程的唯一标识——PID
- 查看进程的状态
cd /proc/进程的PID/status
cat status
4 进程管理命令
4.1 查看进程
ps #终端进程
ps -e #系统进程
ps -f #终端进程,UID用户,PPID父进程
UID PID PPID C STIME TTY TIME CMD
root 3005 2993 0 14:39 pts/0 00:00:00 bash
root 3298 3005 0 14:43 pts/0 00:00:00 ps -f
ps -ef #系统进程
ps -ef|grep * #管道命令,过滤————筛选信息
4.2 查看实时进程
top #命令
top - 14:54:01 up 15 min, 1 user, load average: 0.00, 0.08, 0.19
Tasks: 313 total, 2 running, 311 sleeping, 0 stopped, 0 zombie
#总进程个数 运行 睡眠 暂停 僵死态
%Cpu(s): 4.0 us, 2.0 sy, 0.0 ni, 91.9 id, 0.0 wa, 1.7 hi, 0.3 si, 0.0 st
MiB Mem : 1806.1 total, 133.5 free, 1207.5 used, 465.0 buff/cache
# 内存 总 剩余 使用
MiB Swap: 2048.0 total, 2038.0 free, 10.0 used. 433.4 avail Mem
#交换分区(对内存的补充)
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2592 root 20 0 2887152 153540 87480 S 1.3 8.3 0:19.59 gnome-sh+
3528 root 20 0 64016 4744 3872 R 1.0 0.3 0:03.14 top
1151 root 20 0 181688 13212 10012 R 0.7 0.7 0:02.32 vmtoolsd
4.3 结束进程
kill 进程的PID
- 进程的执行方式
- 前台执行:等待进制执行结束,终端才能继续操作
- 后台执行:进程执行时,不妨碍终端的操作
4.3.1 结束后台进程
进程命令& #进程转为后台执行
[root@localhost ~]# sleep 200&
[1] 3758
[root@localhost ~]# kill 3758
[1]+ Terminated sleep 200
4.3.2 结束前台进程
#打开另一个终端界面
ps -e|grep * #筛选出该进程,查看其PID
kill 进程PID
Ctrl+c #结束前台进程
4.3.3 结束挂起的进程
Ctrl+z #挂起前台进程
kill -stop 进程PID #挂起前台进程
jobs #查看后台或挂起的进程任务列表
fg 任务号 #将挂起或后台进程转为前台执行
bg 任务号 #将挂起进程转为后台执行
kill -9 进程PID #强制结束进程
- 将进程转为后台运行
[root@localhost ~]# jobs
[1]+ Stopped sleep 200
[root@localhost ~]# bg 1 #将进程转为后台运行
[1]+ sleep 200 &
[root@localhost ~]# ps
PID TTY TIME CMD
4014 pts/0 00:00:00 bash
4058 pts/0 00:00:00 sleep
4137 pts/0 00:00:00 ps
[root@localhost ~]# kill 4058 #结束进程
[1]+ Terminated sleep 200
- 强制结束进程
[root@localhost ~]# sleep 200
^Z
[1]+ Stopped sleep 200
[root@localhost ~]# ps
PID TTY TIME CMD
4014 pts/0 00:00:00 bash
4199 pts/0 00:00:00 sleep
4206 pts/0 00:00:00 ps
[root@localhost ~]# kill -9 4199 #强制结束进程
[1]+ Killed sleep 200